Passed
Push — task/application-profile-react... ( f3a6a9...9a6ac9 )
by Tristan
07:39 queued 11s
created

LogAction::handle()   A

Complexity

Conditions 5
Paths 3

Size

Total Lines 19
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 14
c 2
b 0
f 0
dl 0
loc 19
rs 9.4888
cc 5
nc 3
nop 2
1
<?php
2
3
namespace App\Http\Middleware;
4
5
use Closure;
6
use Illuminate\Support\Facades\Auth;
7
use Illuminate\Support\Facades\Log;
8
9
class LogAction
10
{
11
12
    /**
13
     * Handle an incoming request.
14
     *
15
     * @param  \Illuminate\Http\Request  $request
16
     * @param  \Closure  $next
17
     * @return mixed
18
     */
19
    public function handle($request, Closure $next)
20
    {
21
        if (Auth::check() && Auth::user()->isAdmin() && $request->method() !== 'GET') {
22
            $input = $request->input();
23
            $bodyKeys = [];
24
            foreach ($input as $key => $value) {
25
                array_push($bodyKeys, $key); // Only include keys to avoid logging any sensitive values.
26
            }
27
            $logArray = [
28
                'message' => 'Admin non-GET request',
29
                'admin_user_id' => $request->user()->id,
30
                'url' => $request->url(),
31
                'verb' => $request->method(),
32
                'body_keys' => $bodyKeys
33
            ];
34
            Log::info(json_encode($logArray));
35
            return $next($request);
36
        }
37
        return $next($request);
38
    }
39
}
40