LogDebugVisits   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 7
eloc 15
c 3
b 0
f 0
dl 0
loc 38
ccs 14
cts 14
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B handle() 0 27 7
1
<?php
2
3
namespace App\Http\Middleware;
4
5
use Closure;
6
7
use Illuminate\Support\Arr;
8
use Illuminate\Http\Request;
9
10
use Illuminate\Support\Facades\Log;
11
use Illuminate\Support\Facades\Auth;
12
use Illuminate\Support\Facades\Route;
13
14
class LogDebugVisits
15
{
16
    //  These items should never be logged
17
    protected $ignore = ['_token', 'token'];
18
    //  These items are logged with masked input to show that they did exist during the session
19
    protected $redact = ['password', 'password_confirmation'];
20
21
22
    /**
23 700
\     * When Debug Logging is one, log every page visit and all $request data
24
     */
25 700
    public function handle(Request $request, Closure $next)
26
    {
27 700
        $user = isset(Auth::user()->user_id) ? Auth::user()->full_name : \Request::ip();
28 700
        $requestData = $request->request->all();
29
30 700
        Log::debug('Route '.Route::currentRouteName().' visited by '.$user);
31
32 700
        if(!empty($requestData))
33
        {
34 328
            foreach($this->redact as $i)
35
            {
36 328
                if(Arr::exists($requestData, $i))
37
                {
38 44
                    $requestData[$i] = '[REDACTED]';
39
                }
40
            }
41 328
            foreach($this->ignore as $i)
42
            {
43 328
                if(Arr::exists($requestData, $i))
44
                {
45 8
                    unset($requestData[$i]);
46
                }
47
            }
48 328
            Log::debug('Submitted Data ', $requestData);
49
        }
50
51 700
        return $next($request);
52
    }
53
}
54