我試圖找出一個角色是否有顯式訪問資源使用Zend Acl,但Zend Acl的isAllowed方法不僅檢查角色,而且任何角色指定的角色繼承,我不關心,我只想知道它自己的角色是否允許。isAllowed爲單個角色(不角色角色繼承)
對於某些上下文,我正在爲管理員構建一個接口,以便基於每個用戶更改acl規則,所以我希望他們能夠查看某個角色是明確允許的,是繼承了訪問還是明確拒絕訪問資源。
我試圖找出一個角色是否有顯式訪問資源使用Zend Acl,但Zend Acl的isAllowed方法不僅檢查角色,而且任何角色指定的角色繼承,我不關心,我只想知道它自己的角色是否允許。isAllowed爲單個角色(不角色角色繼承)
對於某些上下文,我正在爲管理員構建一個接口,以便基於每個用戶更改acl規則,所以我希望他們能夠查看某個角色是明確允許的,是繼承了訪問還是明確拒絕訪問資源。
通常你從某處讀取ACL的設置,比如說一個數據庫。那就是你應該看的地方。無論如何,你需要寫在那裏。
我認爲你正在看錯Zend_Acl。 整個系統是基於父/子
如果您不需要父/子關係,你將不得不定義每個角色每個規則:
客人可洛 遊客不能註銷
用戶可以登錄 用戶可以註銷
或者您可以擴展Zend_Acl並創建您自己的isExplicitAllowed()方法。