diff --git a/pype/ftrack/actions/action_create_cust_attrs.py b/pype/ftrack/actions/action_create_cust_attrs.py index 527f0daaf5..784b55682d 100644 --- a/pype/ftrack/actions/action_create_cust_attrs.py +++ b/pype/ftrack/actions/action_create_cust_attrs.py @@ -111,6 +111,8 @@ class CustomAttributes(BaseAction): label = 'Create/Update Avalon Attributes' #: Action description. description = 'Creates Avalon/Mongo ID for double check' + #: roles that are allowed to register this action + role_list = ['Pypeclub', 'Administrator'] def __init__(self, session): super().__init__(session) @@ -576,23 +578,7 @@ def register(session, **kw): if not isinstance(session, ftrack_api.session.Session): return - roleList = ['Pypeclub', 'Administrator'] - - 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: - CustomAttributes(session).register() - else: - logging.info( - "!!! You're missing required permissions for action {}".format( - CustomAttributes.__name__ - ) - ) + CustomAttributes(session).register() def main(arguments=None): diff --git a/pype/ftrack/actions/action_delete_asset.py b/pype/ftrack/actions/action_delete_asset.py index f1d2941420..0c46df36fd 100644 --- a/pype/ftrack/actions/action_delete_asset.py +++ b/pype/ftrack/actions/action_delete_asset.py @@ -13,10 +13,12 @@ class DeleteAsset(BaseAction): #: Action identifier. identifier = 'delete.asset' #: Action label. - label = 'Delete asset/subsets' + label = 'Delete Asset/Subsets' #: Action description. description = 'Removes from Avalon with all childs and asset from Ftrack' icon = "https://www.iconsdb.com/icons/preview/white/full-trash-xxl.png" + #: roles that are allowed to register this action + role_list = ['Pypeclub', 'Administrator'] #: Db db = DbConnector() @@ -310,23 +312,7 @@ def register(session, **kw): if not isinstance(session, ftrack_api.session.Session): return - roleList = ['Pypeclub', 'Administrator'] - - 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: - DeleteAsset(session).register() - else: - logging.info( - "!!! You're missing required permissions for action {}".format( - DeleteAsset.__name__ - ) - ) + DeleteAsset(session).register() def main(arguments=None): diff --git a/pype/ftrack/actions/action_delete_asset_byname.py b/pype/ftrack/actions/action_delete_asset_byname.py index 3b26854867..3115d5560a 100644 --- a/pype/ftrack/actions/action_delete_asset_byname.py +++ b/pype/ftrack/actions/action_delete_asset_byname.py @@ -15,6 +15,8 @@ class AssetsRemover(BaseAction): label = 'Delete Assets by Name' #: Action description. description = 'Removes assets from Ftrack and Avalon db with all childs' + #: roles that are allowed to register this action + role_list = ['Pypeclub', 'Administrator'] #: Db db = DbConnector() @@ -135,23 +137,7 @@ def register(session, **kw): if not isinstance(session, ftrack_api.session.Session): return - roleList = ['Pypeclub', 'Administrator'] - - 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: - AssetsRemover(session).register() - else: - logging.info( - "!!! You're missing required permissions for action {}".format( - AssetsRemover.__name__ - ) - ) + AssetsRemover(session).register() def main(arguments=None): diff --git a/pype/ftrack/actions/action_job_killer.py b/pype/ftrack/actions/action_job_killer.py index f4aa7b1816..9adf9c85e7 100644 --- a/pype/ftrack/actions/action_job_killer.py +++ b/pype/ftrack/actions/action_job_killer.py @@ -17,7 +17,8 @@ class JobKiller(BaseAction): label = 'Job Killer' #: Action description. description = 'Killing all running jobs younger than day' - + #: roles that are allowed to register this action + role_list = ['Pypeclub', 'Administrator'] def prediscover(self, event): ''' Validation ''' @@ -103,23 +104,8 @@ def register(session, **kw): # return without doing anything. if not isinstance(session, ftrack_api.session.Session): return - roleList = ['Pypeclub', 'Administrator'] - 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: - JobKiller(session).register() - else: - logging.info( - "!!! You're missing required permissions for action {}".format( - JobKiller.__name__ - ) - ) + JobKiller(session).register() def main(arguments=None): diff --git a/pype/ftrack/actions/action_sync_to_avalon_local.py b/pype/ftrack/actions/action_sync_to_avalon_local.py index cc5df18444..68c55be652 100644 --- a/pype/ftrack/actions/action_sync_to_avalon_local.py +++ b/pype/ftrack/actions/action_sync_to_avalon_local.py @@ -54,6 +54,8 @@ class SyncToAvalon(BaseAction): 'https://cdn1.iconfinder.com/data/icons/hawcons/32/' '699650-icon-92-inbox-download-512.png' ) + #: roles that are allowed to register this action + role_list = ['Pypeclub'] #: Action priority priority = 200 @@ -223,23 +225,8 @@ def register(session, **kw): if not isinstance(session, ftrack_api.session.Session): return - roleList = ['Pypeclub'] + SyncToAvalon(session).register() - 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: - SyncToAvalon(session).register() - else: - logging.info( - "!!! You're missing required permissions for action {}".format( - SyncToAvalon.__name__ - ) - ) def main(arguments=None): '''Set up logging and register action.''' diff --git a/pype/ftrack/actions/action_test.py b/pype/ftrack/actions/action_test.py index d88bcf7290..5555d8cea7 100644 --- a/pype/ftrack/actions/action_test.py +++ b/pype/ftrack/actions/action_test.py @@ -25,8 +25,9 @@ class TestAction(BaseAction): description = 'Test action' #: priority priority = 10000 - - def prediscover(self, session, entities, event): + #: roles that are allowed to register this action + role_list = ['Pypecub'] + def prediscover(self, event): ''' Validation ''' return True @@ -43,23 +44,7 @@ def register(session, **kw): if not isinstance(session, ftrack_api.session.Session): return - 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__ - ) - ) + TestAction(session).register() def main(arguments=None):