radfusion/app/Http/Controllers/Staff/AuditLogController.php

38 lines
1.3 KiB
PHP

<?php
namespace App\Http\Controllers\Staff;
use App\Http\Controllers\HashedStudyControllerBase;
use App\Services\AuditTrail\Activity;
use App\Services\AuditTrail\Category;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class AuditLogController extends HashedStudyControllerBase
{
public function popup()
{
$study = $this->getStudy();
$logs = DB::table('audit_logs')
->leftjoin('users', 'users.id', '=', 'audit_logs.user_id')
->leftjoin('user_agents', 'user_agents.id', '=', 'audit_logs.user_agent_id')
->selectRaw('users.display_name as user_name, audit_logs.created_at as log_time, audit_logs.*, user_agents.*')
->orderByDesc('audit_logs.id')
->where('audit_logs.study_id', $study->id)
->get();
$logs->each(function ($log) {
$log->category_name = Category::from($log->category)->name;
$log->activity_name = Str::of(Activity::from($log->activity)->name)->slug('-')->replace('-', ' ')->title();
if (filled($log->user_agent)) {
$log->browser = "Browser: {$log->browser_name}\nDevice: {$log->device_type}\nPlatform: {$log->platform}";
} else {
$log->browser = null;
}
});
return view('staff.audit.popup', compact('study', 'logs'));
}
}