diff options
| author | Sam Light <sam@lightscale.co.uk> | 2025-04-09 22:22:54 +0100 | 
|---|---|---|
| committer | Sam Light <samlight1994@gmail.com> | 2025-04-09 22:22:54 +0100 | 
| commit | 6838dcd5e9c52e5b51d1565c3a24ec6f5557659b (patch) | |
| tree | 94537df7153ee1209918194f21f7942609d4f7f4 /src/Http | |
| parent | ee4c6f74e6842270783fecd74c27941395e7fe4a (diff) | |
Finish the middlewarev1.0.0
Diffstat (limited to 'src/Http')
| -rw-r--r-- | src/Http/AccessLogMiddleware.php | 39 | 
1 files changed, 29 insertions, 10 deletions
| 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 @@  <?php -namespace Lightscale\AccessLog\Http; +namespace Lightscale\LaralightAccessLog\Http;  use Lightscale\AccessLog\Models\AccessLog; @@ -11,23 +11,38 @@ use Closure;  class AccessLogMiddleware  { -    public function properties(Request $request, Response $response): ?iterable +    protected function properties(Request $request, Response $response): ?iterable      { -        return null; +        $props = []; + +        if (config('access_log.log_ip')) { +            $props['ip'] = $request->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;      }  } | 
