CakePHP Auth仅用于管理前缀
我有管理员前缀,我们有一个基于CMS的部分,网站所有者将能够维护应用程序的内容 是否有任何方法可以通过Auth组件自动限制这些部分。而其他部分不需要身份验证CakePHP Auth仅用于管理前缀,cakephp,authentication,cakephp-2.4,Cakephp,Authentication,Cakephp 2.4,我有管理员前缀,我们有一个基于CMS的部分,网站所有者将能够维护应用程序的内容 是否有任何方法可以通过Auth组件自动限制这些部分。而其他部分不需要身份验证 // other wise i will have to add a lot of actions like below $this->Auth->allow('home', 'about', 'contacts); 您只需使用基于控制器的授权即可完成此任务: 其思想是在控制器(以及需要特定规则的任何控制器)中有一个isAu
// other wise i will have to add a lot of actions like below
$this->Auth->allow('home', 'about', 'contacts);
您只需使用基于控制器的授权即可完成此任务: 其思想是在控制器(以及需要特定规则的任何控制器)中有一个isAuthorized()方法,该方法根据用户的授权返回true或false 因此,您可以通过在AppController中放置类似以下内容来禁用所有管理路径(已验证的路径除外):
public function isAuthorized($user) {
// * Admin section control
if (empty($this->params['admin'])) {
// ** DEFAULT: All users can access public functions
return true;
} else if(AuthComponent::user('role') == 'admin'){
// ** Allow admin users access to everything.
return true;
}
// * DEFAULT: Deny all
return false;
}
编辑:Oops——这只有在用户已经通过身份验证(登录)时才有用,对不起。just
$this->Auth->allow()代码>当前缀!='admin'
因此,将其添加到AppController,我需要在所有控制器中调用beforeFilter()以检查授权?授权仍然要求用户登录,我的要求是允许角色为“admin”的用户能够访问具有“admin”的所有操作cakephp3.x中的前缀……你能帮我一下吗?