1

我希望任何不是主用户的用户都被重定向到一个单独的页面/profiles

我通过编辑管理洒水实现了这一点,将这个简单的语句添加到pageDashboardAdminController.php 中的函数中:

    if(!$currentUser->isMaster()){
        header("Location: /profiles");
        exit;
    }

我想把它移到我自己的洒上,但我不清楚如何最好地做到这一点。我会创建自己的扩展 AdminController 的控制器,然后替换该功能吗?或者有没有更简洁的方法?我现在拥有的东西可以工作,但显然不是面向未来的,因为这个文件将在未来的更新中被覆盖。

4

1 回答 1

3

determineRedirectOnLogin您可以在使用该服务登录后更改用户重定向的位置。请参阅:https ://learn.userfrosting.com/services/default-services#determineredirectonlogin 。在您的 Sprinkle 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 用户对仪表板的访问权限。

旁注,就像您指出的那样,您不应该编辑任何核心洒水并将该代码移至您自己的洒水。

于 2017-07-01T13:49:57.367 回答