2017-07-19 81 views
0

我爲一個API實現基於角色的ACL,併爲用戶,角色,頁面,頁面操作(查看,添加,編輯,刪除)以及角色與頁面操作的關聯提供表格。現在,我怎樣才能使用這些表格編寫授權門或政策,並將其用於中間件?任何示例都是可喜的。Laravel中基於角色的ACL

我瀏覽了授權文檔,但沒有了解如何定義功能並在基於角色的場景中檢查它們。

回答

1

看一看這個源代碼作爲例子:Spatie/Laravel-permission

也是一個例子的中間件來檢查角色或權限:

can.php

public function handle($request, Closure $next, $permission) 
{  
    if(!$request->user()->can($permission)){ 
     flash()->warning(trans('alert.noAccess')); 
     return abort(403); 
    } 

    return $next($request); 
} 

作用。 php

public function handle($request, Closure $next, $role, $permission = null) 
{ 
    if (auth()->guest()) { 
     return redirect(route('auth.login')); 
    } 

    if (!$request->user()->hasRole($role)) { 
     abort(403); 
    } 

    return $next($request); 
} 
+0

這項工作將在Laravel 5.2上進行嗎? –

+0

它使用laravel授權門,並在Laravel 5.1.11中添加,因此它將在5.2 – Joeri