laravel中控制器功能的用户角色权限
我正在使用laravel5.4。我需要为每个方法创建角色权限 在这里,我创建了一个中间件(角色),如下所示: CheckRole.phplaravel中控制器功能的用户角色权限,laravel,Laravel,我正在使用laravel5.4。我需要为每个方法创建角色权限 在这里,我创建了一个中间件(角色),如下所示: CheckRole.php public function handle($request, Closure $next) { $role = array_slice(func_get_args(), 2); if ( ! User::find(auth()->id())->hasAnyRole($role)) { return
public function handle($request, Closure $next)
{
$role = array_slice(func_get_args(), 2);
if ( ! User::find(auth()->id())->hasAnyRole($role))
{
return response("Insufficient permission",401);
session()->flash('message',"You have no permission to access");
return redirect('/');
}
return $next($request);
}
我有一个控制器作为公司控制器:
CoompanyController.php
public function __construct()
{
$this->middleware(function (Request $request, $next)
{
$this->user = \Auth::User();
//print_r($this->user);exit;
if($this->user['userrole_id'] == 1)
{
$this->middleware('roles:superadmin');
}
else if ($this->user['userrole_id'] == 3)
{
$this->middleware('roles:supportperson',['only' => ['index']]);
}
return $next($request);
});
}
在这里,如果登录用户是超级管理员,那么他可以访问控制器的所有功能。如果登录用户是supportperson,则他只能访问索引方法
那么,如何使用相同的中间件为不同的角色设置功能权限呢?使用
委托是向Laravel 5添加基于角色的权限的一种简洁灵活的方式。IMHO Laravel附带了一个完全可配置的授权系统。不需要定制中间件。请看这里:@dparoli我是拉雷维尔的新手,所以我不知道如何使用它。所以我需要一个用户中间件。第一条规则是不要重新发明轮子,laravel codebase是一个需要战斗的庞然大物,在任何定制之前都要阅读文档。@dparoli Ok。谢谢