From 6838dcd5e9c52e5b51d1565c3a24ec6f5557659b Mon Sep 17 00:00:00 2001 From: Sam Light Date: Wed, 9 Apr 2025 22:22:54 +0100 Subject: Finish the middleware --- src/Http/AccessLogMiddleware.php | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) (limited to 'src/Http') diff --git a/src/Http/AccessLogMiddleware.php b/src/Http/AccessLogMiddleware.php index 92f9810..5e021a0 100644 --- a/src/Http/AccessLogMiddleware.php +++ b/src/Http/AccessLogMiddleware.php @@ -1,6 +1,6 @@ ip(); + } + + if (config('access_log.log_referer')) { + $props['referer'] = $request->header('Referer'); + } + + if (config('access_log.log_user_agent')) { + $props['user_agent'] = $request->userAgent(); + } + + return empty($props) ? null : $props; } - public function shouldLog(): boolean + protected function shouldLog(Request $request): bool { - return config('access_log.enabled'); + $logUnauth = config('access_log.log_unauthenticated'); + $shouldLogAuth = $logUnauth ? true : $request->user() !== null; + return config('access_log.enabled') && $shouldLogAuth; } - public function createLog(Request $request, Response $response): void + protected function createLog(Request $request, Response $response): void { $model = config('access_log.model'); $log = new $model([ 'path' => $request->path(), - 'referer' => $request->referer(), - 'status' => $request->status(), + 'status' => $response->status(), 'properties' => $this->properties($request, $response), ]); $log->user()->associate($request->user()); @@ -36,8 +51,12 @@ class AccessLogMiddleware public function handle(Request $request, Closure $next): Response { - $response = $next(); - if ($this->shouldLog()) $this->createLog($request, $response); + $response = $next($request); + + if ($this->shouldLog($request)) { + $this->createLog($request, $response); + } + return $response; } } -- cgit v1.2.3