我希望任何不是主用户的用户都被重定向到/profiles
的单独页面。
我通过编辑 admin sprinkle,将这个简单的语句添加到 AdminController 中的pageDashboard
函数中实现了这一点.php:
if(!$currentUser->isMaster()){
header("Location: /profiles");
exit;
}
我想把它移到我自己的洒水上,但我不清楚如何最好地做到这一点。我会创建自己的控制器来扩展 AdminController 并替换函数吗? 还是有更整洁的方法? 我现在拥有的工作,但显然不是面向未来的,因为此文件将在未来的更新中被覆盖。
您可以使用determineRedirectOnLogin
服务更改登录后将用户重定向到的位置。请参阅:https://learn.userfrosting.com/services/default-services#determineredirectonlogin。在您的洒水服务提供商中,只需用类似的东西覆盖默认服务:
$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 用户对控制面板的访问权限。
旁注,正如您所指出的,您不应该编辑任何核心洒水并将该代码移动到您自己的洒水点。