我正在构建一个应用程序,我的客户希望实现具有组权限的基本身份验证系统。一切都好。
我想解决的问题是,他希望能够在每个用户组登录时为其设置默认登陆网址。他希望通过表单执行此操作,因此无法进行硬编码。
例如:Administratror的默认网址为
的myapp /仪表板
而作家将是
的myapp /写
首先,我想为所有网址创建表并将它们连接到groupPermissions表,但它看起来有点多余。
我的应用程序是使用Laravel PHP Framework构建的。
问题:解决此问题的最佳方法是什么?
答案 0 :(得分: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路由并统一访问它们的集中位置。