多个授权组件的问题

时间:2012-04-12 12:35:37

标签: cakephp authorization cakephp-2.0

我真的很享受使用CakePHP的身份验证和授权组件,并创建了自定义组件以适应我所处的情况。

我的问题源于我现在需要两级授权。

在我的AppController中,我的授权配置如下

public $components = array(
    "Auth" => array(
        'authorize' => array('controller','App'),
    )
);

将'App'链接到自定义AppAuthorize组件,并使用'controller'调用ControllerAuthorize组件。

虽然这些组件中的每一个都能很好地发挥作用,但它们之间的相互作用会导致问题。

问题是如果控制器授权(通过isAuthorized())返回true,则不检查第二个组件。相反,如果控制器授权返回false,则检查AppAuthorize。

我想要发生的是他们两个都要经常被检查;返回两个响应的逻辑AND,而不是当前返回的逻辑OR。

有没有人对此有任何想法,或者甚至可以通过蛋糕的授权组件实现这一点?

由于

罗布

1 个答案:

答案 0 :(得分:1)

为什么不简单地使用AppAuthorize扩展ControllerAuthorize类并添加所需的条件并检查类中的AND条件。

当其中一个Authorize对象返回true时,Cake本身将始终授予访问权限。