Skip to content

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

1
2
3
4
5
    public function index(Request $request){
        if ($request->user()->can('all-all')) {
            return 'Seja muito bem vindo seu Super';
        }
    }