CheckScopes   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 6
c 1
b 0
f 0
dl 0
loc 22
rs 10
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A handle() 0 11 3
1
<?php
2
3
namespace Modules\Core\Http\Middleware;
4
5
use Closure;
6
use Illuminate\Http\Request;
7
use Illuminate\Support\Arr;
8
use Modules\Core\Supports\Response;
9
use Tymon\JWTAuth\Facades\JWTAuth;
10
11
class CheckScopes
12
{
13
    /**
14
     * Handle an incoming request.
15
     *
16
     * @param \Illuminate\Http\Request $request
17
     * @param \Closure                 $next
18
     * @param array                    $scopes
19
     *
20
     * @return mixed
21
     */
22
    public function handle(Request $request, Closure $next, ...$scopes)
23
    {
24
        $canScopes = data_get(JWTAuth::user()->getJWTCustomClaims(), 'scopes');
25
26
        foreach ($scopes as $scope) {
27
            if (!Arr::has($canScopes, $scope)) {
28
                return Response::handleForbidden();
29
            }
30
        }
31
32
        return $next($request);
33
    }
34
}
35