@@ 8-38 (lines=31) @@ | ||
5 | use Closure; |
|
6 | use Illuminate\Support\Facades\Auth; |
|
7 | ||
8 | class PermissionMiddleware |
|
9 | { |
|
10 | public function handle($request, Closure $next, $permission) |
|
11 | { |
|
12 | $routeNameRedirect = config('permission.unauthorized_route_name_redirect'); |
|
13 | ||
14 | if (Auth::guest()) { |
|
15 | if (! is_null($routeNameRedirect)) { |
|
16 | return redirect() |
|
17 | ->route($routeNameRedirect); |
|
18 | } |
|
19 | abort(403); |
|
20 | } |
|
21 | ||
22 | $permissions = is_array($permission) |
|
23 | ? $permission |
|
24 | : explode('|', $permission); |
|
25 | ||
26 | foreach ($permissions as $permission) { |
|
27 | if (Auth::user()->can($permission)) { |
|
28 | return $next($request); |
|
29 | } |
|
30 | } |
|
31 | ||
32 | if (! is_null($routeNameRedirect)) { |
|
33 | return redirect() |
|
34 | ->route($routeNameRedirect); |
|
35 | } |
|
36 | abort(403); |
|
37 | } |
|
38 | } |
|
39 |
@@ 8-36 (lines=29) @@ | ||
5 | use Closure; |
|
6 | use Illuminate\Support\Facades\Auth; |
|
7 | ||
8 | class RoleMiddleware |
|
9 | { |
|
10 | public function handle($request, Closure $next, $role) |
|
11 | { |
|
12 | $routeNameRedirect = config('permission.unauthorized_route_name_redirect'); |
|
13 | ||
14 | if (Auth::guest()) { |
|
15 | if (! is_null($routeNameRedirect)) { |
|
16 | return redirect() |
|
17 | ->route($routeNameRedirect); |
|
18 | } |
|
19 | abort(403); |
|
20 | } |
|
21 | ||
22 | $role = is_array($role) |
|
23 | ? $role |
|
24 | : explode('|', $role); |
|
25 | ||
26 | if (! Auth::user()->hasAnyRole($role)) { |
|
27 | if (! is_null($routeNameRedirect)) { |
|
28 | return redirect() |
|
29 | ->route($routeNameRedirect); |
|
30 | } |
|
31 | abort(403); |
|
32 | } |
|
33 | ||
34 | return $next($request); |
|
35 | } |
|
36 | } |
|
37 |