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