我真的很享受使用CakePHP的身份验证和授权组件,并创建了自定义组件以适应我所处的情况。
我的问题源于我现在需要两级授权。
在我的AppController中,我的授权配置如下
public $components = array(
"Auth" => array(
'authorize' => array('controller','App'),
)
);
将'App'链接到自定义AppAuthorize组件,并使用'controller'调用ControllerAuthorize组件。
虽然这些组件中的每一个都能很好地发挥作用,但它们之间的相互作用会导致问题。
问题是如果控制器授权(通过isAuthorized())返回true,则不检查第二个组件。相反,如果控制器授权返回false,则检查AppAuthorize。
我想要发生的是他们两个都要经常被检查;返回两个响应的逻辑AND,而不是当前返回的逻辑OR。
有没有人对此有任何想法,或者甚至可以通过蛋糕的授权组件实现这一点?
由于
罗布
答案 0 :(得分:1)
为什么不简单地使用AppAuthorize扩展ControllerAuthorize类并添加所需的条件并检查类中的AND条件。
当其中一个Authorize对象返回true时,Cake本身将始终授予访问权限。