From 5517fe09cc92ee4417baba44579bacdfe432728a Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 21 Dec 2020 17:39:27 +0100 Subject: [PATCH] implemented helper functions to get user roles from event --- .../ftrack/lib/ftrack_action_handler.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/pype/modules/ftrack/lib/ftrack_action_handler.py b/pype/modules/ftrack/lib/ftrack_action_handler.py index 6d45748b23..1dcc5ca647 100644 --- a/pype/modules/ftrack/lib/ftrack_action_handler.py +++ b/pype/modules/ftrack/lib/ftrack_action_handler.py @@ -88,6 +88,44 @@ class BaseAction(BaseHandler): }] } + @classmethod + def get_user_entity_from_event(cls, session, event): + """Query user entity from event.""" + not_set = object() + + # Check if user is already stored in event data + user_entity = event["data"].get("user_entity", not_set) + if user_entity is not_set: + # Query user entity from event + user_info = event.get("source", {}).get("user", {}) + user_id = user_info.get("id") + username = user_info.get("username") + if user_id: + user_entity = session.query( + "User where id is {}".format(user_id) + ).first() + if not user_entity and username: + user_entity = session.query( + "User where username is {}".format(username) + ).first() + event["data"]["user_entity"] = user_entity + + return user_entity + + @classmethod + def get_user_roles_from_event(cls, session, event): + """Query user entity from event.""" + not_set = object() + + user_roles = event["data"].get("user_roles", not_set) + if user_roles is not_set: + user_roles = [] + user_entity = cls.get_user_entity_from_event(session, event) + for role in user_entity["user_security_roles"]: + user_roles.append(role["security_role"]["name"].lower()) + event["data"]["user_roles"] = user_roles + return user_roles + def discover(self, session, entities, event): '''Return true if we can handle the selected entities.