Completed
Push — master ( 6e8c16...bdc137 )
by wen
03:38
created

AdminAuthenticate   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 7
c 1
b 0
f 0
lcom 0
cbo 0
dl 0
loc 39
ccs 0
cts 22
cp 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
C handle() 0 27 7
1
<?php
2
3
namespace Sco\Admin\Middleware;
4
5
use Auth;
6
use Closure;
7
use Illuminate\Http\Request;
8
use Route;
9
use URL;
10
11
class AdminAuthenticate
12
{
13
    /**
14
     * Handle an incoming request.
15
     *
16
     * @param \Illuminate\Http\Request $request
17
     * @param \Closure                 $next
18
     * @param string|null              $guard
19
     *
20
     * @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|\Illuminate\Http\Response|mixed|\Symfony\Component\HttpFoundation\Response
21
     */
22
    public function handle(Request $request, Closure $next, $guard = null)
0 ignored issues
show
Unused Code introduced by
The parameter $guard is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
23
    {
24
        $guard = config('admin.guard');
25
        if (Auth::guard($guard)->guest()) {
26
            if ($request->ajax() || $request->wantsJson()) {
27
                return response('Unauthorized.', 401);
28
            } else {
29
                $url = route('admin.login');
30
31
                return redirect()->guest($url);
32
            }
33
        }
34
35
        Auth::shouldUse($guard);
36
37
        if (!$request->user()->can(Route::currentRouteName())) {
38
            if ($request->ajax() || $request->wantsJson()) {
39
                return response()->json(error('您没有权限执行此操作'));
40
            } else {
41
                $previousUrl = URL::previous();
42
43
                return response()->view('admin::errors.403', compact('previousUrl'));
44
            }
45
        }
46
47
        return $next($request);
48
    }
49
}
50