2

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

为了简单地拒绝给定控制器的用户,我应该把什么放在哪里,除非他们具有特定的角色。

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

任何帮助都是极好的!

提前致谢。

4

1 回答 1

1

简短回答:听起来您需要创建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 组件的正确用户,但应该做你需要的。确保在将其投入生产之前检查其安全性。

于 2008-11-11T09:26:35.210 回答