0
我認爲這一定很容易,但我真的有麻煩找出它:我想檢查一個對象的角色獲得許可。Zope:獲得角色對象的獲得許可
我不想檢查實際用戶的角色或權限,我只想檢查一個對象上的匿名是否具有「訪問內容信息」權限。如果在有問題的對象上設置權限,這很容易,但是在獲得權限時證明更加困難。
我嘗試這樣做:
siteRoles = ('Anonymous', 'myRole1', 'myRole2', 'Manager')
permission = 'Access contents information'
rolesDictList = self.rolesOfPermission(permission)
roles = [roleDict['name'] for roleDict in rolesDictList if roleDict['selected']]
for i, role in enumerate(siteRoles):
if role in roles:
roleMin = i
break
return roleMin
這是不行的,因爲它不會給獲得許可。
我的下一個想法是向上走過父母,直到我找到一些沒有獲得的權限。但是這並不能真正解決問題,因爲它會忽略在層次結構中設置更高的權限(好吧,我可以檢查獲得的並繼續向上)。另外還有一個奇怪的地方:'Manager'總是在rolesOfPermission中被選中。這是爲什麼?
無論如何,我認爲必須有一個更簡單的方法來做到這一點?