mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: add multi-policies for roles
This commit is contained in:
parent
be0c2ef262
commit
10eb94c0dd
4 changed files with 24 additions and 13 deletions
|
|
@ -46,14 +46,15 @@ async def verify_user_rights_with_roles(request: Request,action: str, user_id: s
|
|||
user_roles.append(role)
|
||||
|
||||
for role in user_roles:
|
||||
element = role["elements"][await check_element_type(element_id)]
|
||||
permission_state = role["permissions"][f'action_{action}']
|
||||
for policy in role['policies']:
|
||||
element = policy["elements"][await check_element_type(element_id)]
|
||||
permission_state = policy["permissions"][f'action_{action}']
|
||||
|
||||
##
|
||||
if ("*" in element or element_id in element) and (permission_state is True):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
##
|
||||
if ("*" in element or element_id in element) and (permission_state is True):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
async def check_element_type(element_id):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue