我认为这一定很容易,但我真的很难弄清楚:我想检查一个对象的角色获得的权限。
我不想检查实际用户的角色或权限,我只想检查一个对象 Anonymous 是否具有“访问内容信息”权限。如果在所讨论的对象上设置了权限,这很容易,但在获得权限时会变得更加困难。
我试过这个:
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
这不起作用,因为它没有授予获得的权限。
我的下一个想法是向上遍历父母,直到找到一些未获得的权限。但这并不能真正解决问题,因为它会忽略层次结构中设置较高的权限(好的,我可以检查是否已获得并继续向上)。还有一个奇怪的地方:在角色权限中总是选择“经理”。为什么会这样?
无论如何,我认为必须有一种更简单的方法来做到这一点?