2012-04-12 34 views
0

我使用CakePHP的認證和授權的組件和創建自定義組件,以適應,我發現自己的情況很享受。問題與多個授權部件

我的問題來源於這樣的事實,我現在要兩個級別的授權。

以我的AppController我有配置的授權如下

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

隨着「應用」鏈接到定製AppAuthorize部件,和「控制器」調用ControllerAuthorize組件。

雖然這些組件各自單獨運行得很好,但它們之間的相互作用會造成問題。

問題是,如果控制器授權(通過isAuthorized())返回true,則不檢查第二個組件。相反,如果控制器授權返回false,則會檢查AppAuthorize。

我想要發生的是他們兩人總是被檢查;返回兩個響應的邏輯AND,而不是當前返回的邏輯OR。

有沒有人有任何想法解決這個問題,或者如果這甚至可以通過蛋糕的授權組件?

感謝

羅布

回答

1

爲什麼你不能簡單地與你AppAuthorize擴展ControllerAuthorize類,並添加你所需要的條件,併爲您在班上和狀況。

當其中一個授權對象返回true時,Cake本身將始終授予訪問權限。

+0

Genious,這是一個好主意。非常感謝。 – 2012-04-12 14:00:51