CakePHP 1.2:除了管理员之外,如何锁定给定控制器的访问权限?

时间:2008-11-07 00:33:10

标签: php authentication cakephp cakephp-1.2

我不是在寻找整个ACO-ARO实现......我只是想使用Auth,并检查用户的角色....

除非他们具有特定的角色,否则我放在哪里以简单地拒绝给定控制器的用户。

我正在尝试使用$ this-> Auth-> authorize ='controller'; ......但我甚至不知道把它放在哪里?

任何帮助都会很棒!

提前致谢。

1 个答案:

答案 0 :(得分:1)

简短的回答 r:听起来您需要创建app_controller.php并将代码放入beforeFilter方法。

更长的答案:在您的应用目录中创建一个app_controller.php文件,并将以下代码放入beforeFilter()

if (isset($this->params[Configure::read('Routing.admin')])) { //User is trying to access a page using the admin route
    if ($this->Session->check('someSessionVariable')) { //Check user has some session variable set.                 
        // User is accessing an admin page and has permission, do something, or in most cases do nothing.
     } else { //No sessions set for user, redirect to login page.           
        $this->redirect('/yourLoginPage'); //Redirect
    }
}

这不能替代Auth组件的正确用户,但应该做你需要的。在投入生产之前,请确保检查其安全性。