From 12e2e30aa1daf03802b4fd5fa20a40a27da144ed Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Fri, 22 Feb 2019 15:36:34 +0100 Subject: [PATCH] test action moved role check to register disvoer changed to prediscover --- pype/ftrack/actions/action_test.py | 34 +++++++++++++++++------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/pype/ftrack/actions/action_test.py b/pype/ftrack/actions/action_test.py index 31bcd4f518..d88bcf7290 100644 --- a/pype/ftrack/actions/action_test.py +++ b/pype/ftrack/actions/action_test.py @@ -1,5 +1,3 @@ -# :coding: utf-8 -# :copyright: Copyright (c) 2017 ftrack import sys import argparse import logging @@ -28,19 +26,10 @@ class TestAction(BaseAction): #: priority priority = 10000 - def discover(self, session, entities, event): + def prediscover(self, session, entities, event): ''' Validation ''' - discover = False - roleList = ['Pypeclub'] - userId = event['source']['user']['id'] - user = session.query('User where id is ' + userId).one() - for role in user['user_security_roles']: - if role['security_role']['name'] in roleList: - discover = True - break - - return discover + return True def launch(self, session, entities, event): self.log.info(event) @@ -54,8 +43,23 @@ def register(session, **kw): if not isinstance(session, ftrack_api.session.Session): return - action_handler = TestAction(session) - action_handler.register() + roleList = ['Pypeclub'] + + username = session.api_user + user = session.query('User where username is "{}"'.format(username)).one() + available = False + for role in user['user_security_roles']: + if role['security_role']['name'] in roleList: + available = True + break + if available is True: + TestAction(session).register() + else: + logging.info( + "!!! You're missing required permissions for action {}".format( + TestAction.__name__ + ) + ) def main(arguments=None):