これは簡単に違いないと思っていましたが、理解するのに本当に苦労しました。オブジェクトに対するロールの取得済みのアクセス許可を確認したいのです。
実際のユーザーの役割や権限を確認したくありません。つまり、匿名のオブジェクトに「コンテンツ情報へのアクセス」権限があるかどうかを確認したいだけです。問題のオブジェクトにアクセス許可が設定されている場合、これは簡単ですが、アクセス許可が取得されると、より困難になります。
私はこれを試しました:
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 で選択されます。これはなぜですか?
とにかく、これを行うためのより簡単な方法があるに違いないと思いますか?