我有與BjyAuthorize一個小問題:我可以檢索用戶的所有角色,但我想只有最高的國家之一。ZF2 BjyAuthorize得到用戶的最高角色
例如,如果用戶是管理員,我能找回他的所有角色(客戶,用戶和管理員),但想只顯示管理員。
有沒有人找到解決方案?
我有與BjyAuthorize一個小問題:我可以檢索用戶的所有角色,但我想只有最高的國家之一。ZF2 BjyAuthorize得到用戶的最高角色
例如,如果用戶是管理員,我能找回他的所有角色(客戶,用戶和管理員),但想只顯示管理員。
有沒有人找到解決方案?
你必須定義你的意思是什麼最高。在權限繼承的情況下,沒有父項的權限最少。但只有當它們相關時纔有效。所以,如果他們都像admin
相關 - >user
- >guest
其中箭頭讀起來像「從繼承權限」,那麼它很可能(拒絕規則不考慮),其admin
擁有最權限,因爲用戶有不被分配了另一個從admin
繼承的角色。
當f.e.從user
和guest
admin
繼承的權限不涉及user
或admin
的話,那麼它會變得更加複雜。
admin
- >user
guest
要確定哪些人有更多的權利(角色的命名是顯而易見的,而不是你的應用程序),你必須比較guest
的權限和admin
的權限。
這是不容易做到的,我懷疑這是你想要的東西,因爲它可能是父母可以有更多的權限。 F.E.當一個拒絕規則被應用到繼承者時。
我意識到這是舊的,但萬一它對任何人都有用: 如果您有一個用戶角色和一個繼承用戶權限的管理員角色,則不必爲管理員提供角色,只是管理角色。他們也會自動從用戶組獲得權限;這就是繼承的原因。
我知道我可以創建一個方法來找到沒有父母的角色,因爲我正在使用繼承。它會起作用,但如你所述,它過於複雜。如果我爲每個用戶只設置一個角色,BjyAuthorize仍然可以工作嗎?顯然是最高的一個。 –