在用户结霜站点中为非主用户跳过仪表板的正确方法



我希望任何不是主用户的用户都被重定向到/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 用户对控制面板的访问权限。

旁注,正如您所指出的,您不应该编辑任何核心洒水并将该代码移动到您自己的洒水点。

最新更新