mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
extracted rolecheck from _preregister to separate method
This commit is contained in:
parent
22869a1507
commit
14e192e72c
1 changed files with 20 additions and 13 deletions
|
|
@ -149,20 +149,27 @@ class BaseHandler(object):
|
||||||
def reset_session(self):
|
def reset_session(self):
|
||||||
self.session.reset()
|
self.session.reset()
|
||||||
|
|
||||||
|
def _register_role_check(self):
|
||||||
|
if not self.role_list or not isinstance(self.role_list, (list, tuple)):
|
||||||
|
return
|
||||||
|
|
||||||
|
user_entity = self.session.query(
|
||||||
|
"User where username is \"{}\"".format(self.session.api_user)
|
||||||
|
).one()
|
||||||
|
available = False
|
||||||
|
lowercase_rolelist = [
|
||||||
|
role_name.lower()
|
||||||
|
for role_name in self.role_list
|
||||||
|
]
|
||||||
|
for role in user_entity["user_security_roles"]:
|
||||||
|
if role["security_role"]["name"].lower() in lowercase_rolelist:
|
||||||
|
available = True
|
||||||
|
break
|
||||||
|
if available is False:
|
||||||
|
raise MissingPermision
|
||||||
|
|
||||||
def _preregister(self):
|
def _preregister(self):
|
||||||
if hasattr(self, "role_list") and len(self.role_list) > 0:
|
self._register_role_check()
|
||||||
username = self.session.api_user
|
|
||||||
user = self.session.query(
|
|
||||||
'User where username is "{}"'.format(username)
|
|
||||||
).one()
|
|
||||||
available = False
|
|
||||||
lowercase_rolelist = [x.lower() for x in self.role_list]
|
|
||||||
for role in user['user_security_roles']:
|
|
||||||
if role['security_role']['name'].lower() in lowercase_rolelist:
|
|
||||||
available = True
|
|
||||||
break
|
|
||||||
if available is False:
|
|
||||||
raise MissingPermision
|
|
||||||
|
|
||||||
# Custom validations
|
# Custom validations
|
||||||
result = self.preregister()
|
result = self.preregister()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue