0

私は CakePHP の認証および承認コンポーネントの使用をとても楽しんでおり、自分が置かれている状況に合わせてカスタム コンポーネントを作成しました。

私の問題は、現在 2 つのレベルの承認が必要であるという事実に起因しています。

私のAppControllerでは、次のように承認が構成されています

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

「App」はカスタム AppAuthorize コンポーネントにリンクし、「controller」は ControllerAuthorize コンポーネントを呼び出します。

これらの各コンポーネントは個別に非常にうまく機能しますが、その相互作用が問題を引き起こしています。

問題は、コントローラーの承認 (isAuthorized() による) が true を返す場合、2 番目のコンポーネントがチェックされないことです。逆に、コントローラーの承認が false を返す場合、AppAuthorize がチェックされます。

私が望んでいるのは、両方が常にチェックされることです。現在返されている論理 OR ではなく、2 つの応答の論理 AND を返します。

誰かがこれを回避する方法のアイデアを持っていますか、それともケーキの承認コンポーネントを介してこれが可能かどうか?

ありがとう

ロブ

4

1 に答える 1

1

ControllerAuthorize クラスを AppAuthorize で単純に拡張し、必要な条件を追加して、クラスの AND 条件を確認しないのはなぜですか。

Authorize オブジェクトの 1 つが true を返す場合、Cake 自体は常にアクセスを許可します。

于 2012-04-12T13:43:44.750 に答える