thinkstudeo /
laravel-rakshak
| 1 | <?php |
||
| 2 | |||
| 3 | namespace Thinkstudeo\Rakshak\Middleware; |
||
| 4 | |||
| 5 | use Illuminate\Http\Response; |
||
| 6 | |||
| 7 | class CheckRole |
||
| 8 | { |
||
| 9 | /** |
||
| 10 | * Handle the incoming request. |
||
| 11 | * |
||
| 12 | * @param \Illuminate\Http\Request $request |
||
| 13 | * @param \Closure $next |
||
| 14 | * @param string $role |
||
| 15 | * @return mixed |
||
| 16 | */ |
||
| 17 | public function handle($request, \Closure $next, $role) |
||
| 18 | { |
||
| 19 | if (! $request->user()) { |
||
| 20 | return redirect(route('login')); |
||
| 21 | } |
||
| 22 | |||
| 23 | $roles = is_string($role) ? explode('|', $role) : $role; |
||
|
0 ignored issues
–
show
introduced
by
Loading history...
|
|||
| 24 | |||
| 25 | if (! $request->user()->hasAnyRole($roles)) { |
||
| 26 | abort(Response::HTTP_FORBIDDEN, 'You do not have the permission.'); |
||
| 27 | } |
||
| 28 | |||
| 29 | return $next($request); |
||
| 30 | } |
||
| 31 | } |
||
| 32 |