3

我正在用 CakePHP 建立一个网站,我想有 3 个部分:

  • 公共区域
  • 用户区
  • 管理区

我在 routes.php 中设置了前缀路由,看起来像

Router::connect('/user/:controller/:action/*', array('prefix' => 'user', 'user' => true));
Router::connect('/admin/:controller/:action/*', array('prefix' => 'admin', 'admin' => true));

我想要它,因此如果尚未登录并且用户类型为“正常”并且用户类型为“正常”(附带问题:用户可以正常:P)并且任何带有 admin_ 前缀的操作也重定向但需要,则任何带有 user_ 前缀的操作都将重定向到登录屏幕管理员的用户类型。

我开始尝试使用 Auth 组件,但它似乎很不灵活,而 ACL 似乎过头了。任何人都可以就实现我想要的最佳方式提供一些建议吗?

4

1 回答 1

7

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']);
}

您还可以isAuthorized()根据需要向模型或控制器添加功能,以进行更高级的身份验证。请参阅http://book.cakephp.org/1.3/en/The-Manual/Core-Components/Authentication.html#authcomponent-variables

于 2009-12-11T06:32:53.963 回答