-
-
Notifications
You must be signed in to change notification settings - Fork 27k
Expand file tree
/
Copy pathAuditLogController.php
More file actions
47 lines (42 loc) · 1.71 KB
/
Copy pathAuditLogController.php
File metadata and controls
47 lines (42 loc) · 1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Modules\Core\Models\AuditLog;
use Illuminate\Http\Request;
use Inertia\Inertia;
use Inertia\Response;
class AuditLogController extends Controller
{
public function index(Request $request): Response
{
$this->authorize('viewAny', User::class);
$logs = AuditLog::with('user')
->where('tenant_id', auth()->user()->tenant_id)
->when($request->event, fn ($q) => $q->where('event', $request->event))
->when($request->model, fn ($q) => $q->where('auditable_type', 'like', "%{$request->model}%"))
->latest()
->paginate(50)
->withQueryString()
->through(fn ($log) => [
'id' => $log->id,
'event' => $log->event,
'model' => class_basename($log->auditable_type),
'model_id' => $log->auditable_id,
'user' => $log->user?->name ?? 'System',
'old_values' => $log->old_values,
'new_values' => $log->new_values,
'ip_address' => $log->ip_address,
'created_at' => $log->created_at->diffForHumans(),
'created_at_raw' => $log->created_at->toDateTimeString(),
]);
return Inertia::render('Admin/AuditLog/Index', [
'logs' => $logs,
'filters' => $request->only(['event', 'model']),
'breadcrumbs' => [
['label' => 'Administration'],
['label' => 'Audit Log', 'href' => route('admin.audit-log.index')],
],
]);
}
}