2009-10-27 47 views
0

我有一個Zend_Acl的大型實現,並且拒絕函數沒有按預期工作。它沒有得到正確的繼承,我還沒有解決與羣體的衝突。Zend_Acl不按廣告標準工作

在我深入代碼之前。是否有Zend_Acl知道的任何問題或任何人想分享的高級技巧。

我不得不明確拒絕訪問樹中的所有孩子,當我只希望拒絕訪問父母。

我有多個組和各種拒絕/允許在同一個對象上。該手冊指出,最後添加的組和數組是先檢查的...這似乎並不是這種情況,它似乎檢查最具體的最一般(空)權限。

如果我將權限放在樹的根上,當我將更多的權限放到樹上時,它們停止工作,停止繼承。

+0

我們一定需要查看一些代碼才能找到任何問題。具體來說,您運行Zend_Acl :: isAllowed()方法的代碼和ACL addRole()的示例允許()和拒絕()語句。 – Mark 2009-10-28 23:44:59

回答

0

對我而言,ACL按預期工作。如果你這樣做是有預期的行爲: *允許所有 默認模塊*允許管理員和superadmins管理模塊 *否認管理模塊/用戶爲管理員 *允許superadmins

管理模塊/用戶CONTROLER CONTROLER用戶無法訪問管理員。 Asdmins無法訪問管理員。 Superadmins可以訪問所有內容。

+0

我正在研究一個擁有1000個動態頁面(即資源)的Intranet知識庫,我有大約30個組(所有級別,沒有繼承),我有權限NULL,查看和編輯(編輯包括創建/刪除/移動等)。如果我給'超級用戶'允許(NULL)和'everyone'允許(查看)在根目錄下,然後'每個人'拒絕(NULL)在分支之下的某個地方,'everyone'拒絕(NULL)規則將失去繼承。然後,我可以將權限放在單獨的頁面上,但繼承停止。重新排列用戶所屬的「組」的順序並沒有什麼區別。 – Simon 2009-10-27 22:23:21