34 lines
1.0 KiB
PHP
34 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\AccessLog;
|
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller as BaseController;
|
|
|
|
abstract class Controller extends BaseController
|
|
{
|
|
use AuthorizesRequests;
|
|
use ValidatesRequests;
|
|
|
|
protected function auditLog(Request $request, string $action, array $extra = []): void
|
|
{
|
|
AccessLog::query()->create([
|
|
'user_id' => auth('api')->id(),
|
|
'server_resource_id' => $extra['server_resource_id'] ?? null,
|
|
'bastion_account_id' => $extra['bastion_account_id'] ?? null,
|
|
'protocol' => $extra['protocol'] ?? null,
|
|
'action' => $action,
|
|
'requested_at' => now(),
|
|
'metadata' => [
|
|
'path' => $request->path(),
|
|
'method' => $request->method(),
|
|
'client_ip' => $request->ip(),
|
|
...($extra['metadata'] ?? []),
|
|
],
|
|
]);
|
|
}
|
|
}
|