我有多个具有多种权限的用户。一个用户可以属于唯一的单个角色,但该角色可以具有多个权限,例如create, read, update, delete。我有一个RoleMiddleware. 我正在对用户进行身份验证roleMiddleware。但是我怎样才能防止routes特定RoleMiddleware用户呢?
例如,我有一条create-case只能由 访问的路由operator,Admin否则每个人都重定向到404 error我如何处理它RoleMiddleware。
我已经编写了用于身份验证的基本代码,其中每个具有其角色的用户都经过身份验证,但是我正在了解如何在中间件中编码,因此当用户点击它时,路由可能会转到指向角色的RoleMiddleware中间件Authenticate路由,然后给他访问权限。
角色中间件
class RoleMiddleware
{
public function handle($request, Closure $next, $permission = null)
{
if (Auth::check() === false)
{
return redirect('login');
}
elseif (Auth::check() === true)
{
$roles = Role::all()->pluck('slug');
if (is_null($request->user()) )
{
abort(404);
}
if (!$request->user()->hasRole($roles))
{
abort(404);
}
if ($request->user())
{
if ($request->user()->hasRole($roles))
{
return $next($request);
}
}
}
}
}
智慧大石
撒科打诨