gac*_*rux 3 php authentication acl cakephp
我正在建立一个CakePHP网站,我希望有3个部分:
我在routes.php中设置了前缀路由,看起来像
Router::connect('/user/:controller/:action/*', array('prefix' => 'user', 'user' => true));
Router::connect('/admin/:controller/:action/*', array('prefix' => 'admin', 'admin' => true));
Run Code Online (Sandbox Code Playgroud)
我想要它所以任何带有user_前缀的动作都将重定向到登录屏幕,如果尚未登录并且用户类型是'正常'(侧面问题:用户可以正常:P)并且任何带有admin_前缀的操作也会重定向但需要用户类型的管理员.
我开始尝试使用Auth组件,但它似乎非常不灵活,而ACL似乎超过顶部.谁能提供一些关于实现我想要的最佳方法的建议?
Auth组件应该具有足够的灵活性.
你可以这样做beforeFilter():
// I think it's params['prefix'], might be different
// vvvvvvvvvvvvvvvv
if (isset($this->params['prefix'])) {
$this->Auth->userScope = array('User.type' => $this->params['prefix']);
}
Run Code Online (Sandbox Code Playgroud)
您还可以isAuthorized()根据需要向模型或控制器添加功能,以执行更高级的身份验证.请参阅http://book.cakephp.org/1.3/en/The-Manual/Core-Components/Authentication.html#authcomponent-variables.
| 归档时间: |
|
| 查看次数: |
3296 次 |
| 最近记录: |