![](/img/trans.png)
[英]How can i assign user-list permission to other roles also in laravel for spatie package(ACL Management)?
[英]Laravel roles with Spatie package
如何為用戶設置規則以防止他進入特定路線?
我在權限表名稱路由中添加了一列並手動輸入路由並制作了一個中間件,但問題是我的所有控制器都是資源所以有很多路由,那么最好的做法是什么?
public function handle($request, Closure $next)
{
$routeName = $request->route()->getName(); //users.create
$permission = Permission::whereRaw("FIND_IN_SET('$routeName',routes)")->first(); //find route
if($permission)
{
if(!$request->user()->can($permission->name))
{
abort(403);
}
}
return $next($request);
}
您可以使用中間件來保護路由。
您可以像這樣對路線進行分組:
Route::group(['middleware' => ['can:publish articles']], function () {
//
});
或者您可以像這樣保護 controller 上的路由:
public function __construct()
{
$this->middleware(['role:super-admin','permission:publish articles|edit articles']);
}
有關此處的信息: https://spatie.be/docs/laravel-permission/v3/basic-usage/middleware
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.