-1

我正在构建一个应用程序,我的客户想要实现一个具有组权限的基本身份验证系统。都好。

我要解决的问题是,他希望能够在每个用户组登录时为他们设置默认登陆 url。他想通过表单来做到这一点,所以它不能被硬编码。

例如:管理员的默认网址是

我的应用程序/仪表板

而作家的将是

我的应用程序/写

起初我想为所有 url 创建表并将它们连接到 groupPermissions 表,但它看起来有点多余。

我的应用程序是使用 Laravel PHP 框架构建的。

问题:解决这个问题的最佳方法是什么?

4

1 回答 1

3

这取决于您希望系统有多灵活。如果要在管理面板中更改 URI 路径,那么将 URL 存储在某种配置中并在登录时加载它们将是可行的方法。

对于我认为您想要的,我会将组中的 URI 定义为常量:

<?php

class Group extends Eloquent {
    const ADMIN_URI = 'myapp/dashboard'; // Could also be named routes.
    const WRITER_URI = 'myapp/write';
}

然后您可以登录用户并获取他们的权限组,然后在登录控制器中进行如下检查:

if(defined($redirectUri = sprintf('Group::%s_URI', strtoupper($groupName))) {
    return Redirect::to(constant($redirectUri));
}

或类似的东西:

switch(strtolower($group)) {
    case 'admin':
        return Redirect::to(Group::ADMIN_URI);
        break;
    case 'writer':
        return Redirect::to(Group::WRITER_URI);
        break;
    default:
        return Redirect::to('homepage');
        break;
}

这真的是见仁见智。您应该关心的唯一问题是如何存储 URI 路由并统一访问它们的集中位置。

于 2012-12-27T22:04:03.447 回答