HEX
Server: Apache
System: Linux amsngx344.inmotionhosting.com 4.18.0-553.40.1.lve.el8.x86_64 #1 SMP Wed Feb 12 18:54:57 UTC 2025 x86_64
User: raniho6 (2736)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/raniho6/public_html/raniworks.stream/app/Http/Controllers/LoginDetailController.php
<?php

namespace App\Http\Controllers;

use App\Models\LoginDetail;
use Illuminate\Http\Request;
use App\Models\Utility;
use App\Models\Workspace;
use App\Models\User;
use App\Models\Client;
use App\Models\UserWorkspace;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Carbon;

class LoginDetailController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request , $slug = '' )
    {
        $currentWorkspace = Utility::getWorkspaceBySlug($slug);
        $user_logs = LoginDetail::orderByDesc('date')->with('user','client')->get();
        
        if(isset($request) && $request->user && $request->user != ''){

            $users  = explode(',', $request->user);
            
            $user_logs = LoginDetail::where('user_id' , '=' ,$users[0])->where('type','=',$users[1])->with('user','client')->get();
            // dd($user_logs);
        }

        if(isset($request) && $request->start_date){
            
            $start_date = Carbon::parse($request->start_date);
            $end_date = Carbon::parse($request->end_date);
            $user_logs = $user_logs->where('date', '>=', $start_date->format('Y-m-d'))->where('date', '<=', $end_date->format('Y-m-d'));
        }
        
        foreach($user_logs as $user_log ){

            if($user_log->type == 'user' ){
                
                // $user = User::find($user_log->user_id);
                $user = $user_log->user;

            }else{

                // $user = Client::find($user_log->user_id);
                $user =  $user_log->client;

            }
            $data = json_decode($user_log->details);
            $user_log->name = $user->name;
            $user_log->email = $user->email;
            $user_log->role = $user_log->type;
            $user_log->ip = $user_log->ip;
            $user_log->date = $user_log->date;
            $user_log->country = !empty($data->country) ? $data->country : '' ;
            $user_log->device_type =!empty($data->device_type) ? $data->device_type : '' ;
            $user_log->os_name = !empty($data->os_name) ? $data->os_name : '' ;
        }

        $users = User::select('users.*', 'user_workspaces.permission', 'user_workspaces.is_active')->join('user_workspaces', 'user_workspaces.user_id', '=', 'users.id');
        $users->where('user_workspaces.workspace_id', '=', $currentWorkspace->id);
        $users->where('user_workspaces.permission', '=', 'Member');
        $users = $users->get();

        $clients = Client::select(['clients.*','client_workspaces.is_active',])->join('client_workspaces', 'client_workspaces.client_id', '=', 'clients.id');
        $clients->where('client_workspaces.workspace_id', '=', $currentWorkspace->id);
        $clients = $clients->get();

        return view('user_logs.index', compact('user_logs','currentWorkspace', 'users' ,'clients'));

    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\LoginDetail  $loginDetail
     * @return \Illuminate\Http\Response
     */
    public function show($slug, $id)
    {

        $currentWorkspace = Utility::getWorkspaceBySlug($slug);
        $user_log = LoginDetail::find($id);
        $user = json_decode($user_log->details);

        return view('user_logs.show' , compact('currentWorkspace', 'user'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\LoginDetail  $loginDetail
     * @return \Illuminate\Http\Response
     */
    public function edit(LoginDetail $loginDetail)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\LoginDetail  $loginDetail
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, LoginDetail $loginDetail)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\LoginDetail  $loginDetail
     * @return \Illuminate\Http\Response
     */
    public function destroy($slug, $id)
    {
        $user_log = LoginDetail::find($id);
        $objUser          = Auth::user();
        $currentWorkspace = Utility::getWorkspaceBySlug($slug);

        if ($currentWorkspace->created_by == $objUser->id) {

            $user_log->delete();

            return redirect()->back()->with('success', __('User Log Deleted Successfully.!'));
        } else {
            return redirect()->back()->with('error', __('Permission denied.'));
        }
    }

    
}