0

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

我的问题源于我现在想要两个级别的授权。

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

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

“App”链接到自定义 AppAuthorize 组件,“控制器”调用 ControllerAuthorize 组件。

虽然这些组件中的每一个都可以很好地单独工作,但它们的交互会导致问题。

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

我想要做的是让他们两个都被检查;返回两个响应的逻辑 AND 而不是当前返回的逻辑 OR。

有没有人有任何想法解决这个问题,或者这是否可以通过 cake 的授权组件实现?

谢谢

4

1 回答 1

1

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

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

于 2012-04-12T13:43:44.750 回答