Add audit trail middleware and model listeners

This commit is contained in:
Arya Dwi Putra
2025-12-02 10:47:39 +07:00
parent a02e401663
commit 3cb60bc94e
10 changed files with 241 additions and 1 deletions

View File

@@ -7,9 +7,14 @@ use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
use App\Models\Permission;
use App\Models\Role;
use App\Services\Logging\ActivityLogger;
class RoleController extends Controller
{
public function __construct(private readonly ActivityLogger $logger)
{
}
public function index(): View
{
$roles = Role::with('permissions')->orderBy('name')->get();
@@ -27,6 +32,13 @@ class RoleController extends Controller
$role->syncPermissions($request->input('permissions', []));
$this->logger->audit([
'action' => 'role_created',
'model' => 'Role',
'model_id' => $role->id,
'changes' => ['name' => $role->name],
]);
return back()->with('success', 'Role berhasil ditambahkan.');
}
@@ -35,6 +47,13 @@ class RoleController extends Controller
$role->update(['name' => $request->input('name')]);
$role->syncPermissions($request->input('permissions', []));
$this->logger->audit([
'action' => 'role_updated',
'model' => 'Role',
'model_id' => $role->id,
'changes' => ['name' => $role->name, 'permissions' => $request->input('permissions', [])],
]);
return back()->with('success', 'Role berhasil diperbarui.');
}
}