Middleware RoleMiddleware
Este é o middleware usado.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 | <?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class RoleMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next, $role, $permission = null)
{
if(!$request->user()->hasRole($role)) {
abort(404);
}
if($permission !== null && !$request->user()->can($permission)) {
abort(404);
}
return $next($request);
}
}
|
Método can($permission)
Aqui nasce nosso método can($permission), que pode ser usado nos actions dos controller, para controlar o acesso pelo slug da permission
Usando
Testar de o usuário logado pode usar a permissão all-all
| public function index(Request $request){
if ($request->user()->can('all-all')) {
return 'Seja muito bem vindo seu Super';
}
}
|