2013-06-03 47 views
1

我有與BjyAuthorize一個小問題:我可以檢索用戶的所有角色,但我想只有最高的國家之一。ZF2 BjyAuthorize得到用戶的最高角色

例如,如果用戶是管理員,我能找回他的所有角色(客戶,用戶和管理員),但想只顯示管理員。

有沒有人找到解決方案?

回答

1

你必須定義你的意思是什麼最高。在權限繼承的情況下,沒有父項的權限最少。但只有當它們相關時纔有效。所以,如果他們都像admin相關 - >user - >guest其中箭頭讀起來像「從繼承權限」,那麼它很可能(拒絕規則不考慮),其admin擁有最權限,因爲用戶有不被分配了另一個從admin繼承的角色。

當f.e.從userguestadmin繼承的權限不涉及useradmin的話,那麼它會變得更加複雜。

  • admin - >user

  • guest

要確定哪些人有更多的權利(角色的命名是顯而易見的,而不是你的應用程序),你必須比較guest的權限和admin的權限。

這是不容易做到的,我懷疑這是你想要的東西,因爲它可能是父母可以有更多的權限。 F.E.當一個拒絕規則被應用到繼承者時。

+0

我知道我可以創建一個方法來找到沒有父母的角色,因爲我正在使用繼承。它會起作用,但如你所述,它過於複雜。如果我爲每個用戶只設置一個角色,BjyAuthorize仍然可以工作嗎?顯然是最高的一個。 –

0

我意識到這是舊的,但萬一它對任何人都有用: 如果您有一個用戶角色和一個繼承用戶權限的管理員角色,則不必爲管理員提供角色,只是管理角色。他們也會自動從用戶組獲得權限;這就是繼承的原因。