我希望任何不是主用户的用户都被重定向到/profiles
的单独页面。
我通过编辑admin sprinkle来实现这一点,将这个简单的语句添加到AdminController.php中的pageDashboard
函数中:
if(!$currentUser->isMaster()){
header("Location: /profiles");
exit;
}
我想把它移到我自己的身上,但我不清楚如何最好地做到这一点。我会创建自己的扩展AdminController的控制器,只是替换功能吗?或者有一种更简洁的方式吗?我现在的工作原理,但显然不能面向未来,因为这个文件将在未来的更新中被覆盖。
答案 0 :(得分:3)
您可以使用determineRedirectOnLogin
服务更改用户重定向后的位置。见:https://learn.userfrosting.com/services/default-services#determineredirectonlogin。在您的splashle ServicesProvider中,只需用类似的东西覆盖默认服务:
$container['determineRedirectOnLogin'] = function ($c) {
return function ($response) use ($c)
{
if (!$c->currentUser->isMaster()) {
return $response->withHeader('UF-Redirect', '/dashboard');
} else {
return $response->withHeader('UF-Redirect', '/profiles');
}
};
};
如果您愿意,您可以使用权限系统删除非root用户对仪表板的访问权限。
旁注,就像你指出的那样,你不应该编辑任何核心洒水,并将代码移动到你自己的洒水中。