使用 Entrust,我通过在Authcontroller.php
protected function authenticated()
{
if(\Auth::user()->hasRole(['super_admin',]) ) {
return redirect('/dashboard');
} else if(\Auth::user()->hasRole(['staff_admin']) ) {
return redirect('/staff/dashboard');
} else if(\Auth::user()->hasRole(['subadmin_admin']) ) {
return redirect('/subadmin/dashboard');
}
}
我现在面临的挑战是,例如。如果员工已登录并重定向到他的仪表板
domain.com/staff/dashboard
但是如果他从 url 手动删除员工并尝试访问超级管理员仪表板,则 Entrust 会抛出 403 错误,但我想将他重定向到他的仪表板,并显示“您未获得授权”的消息。
我尝试在 RedirectIfAuthenticated 中间件中实现相同的代码,但它给出了错误,因为 hasRole 在 Null 上调用。