我不是在寻找整个 ACO-ARO 实现......我只想使用 Auth,并检查用户的角色......
为了简单地拒绝给定控制器的用户,我应该把什么放在哪里,除非他们具有特定的角色。
我正在尝试使用 $this->Auth->authorize = 'controller'; ...但我什至不知道该放在哪里?
任何帮助都是极好的!
提前致谢。
我不是在寻找整个 ACO-ARO 实现......我只想使用 Auth,并检查用户的角色......
为了简单地拒绝给定控制器的用户,我应该把什么放在哪里,除非他们具有特定的角色。
我正在尝试使用 $this->Auth->authorize = 'controller'; ...但我什至不知道该放在哪里?
任何帮助都是极好的!
提前致谢。
简短回答:听起来您需要创建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 组件的正确用户,但应该做你需要的。确保在将其投入生产之前检查其安全性。