available user roles are set in actions

This commit is contained in:
Jakub Trllo 2019-03-03 21:47:41 +01:00
parent c1c483390d
commit 931f461cd8
6 changed files with 20 additions and 104 deletions

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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):

View file

@ -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.'''

View file

@ -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):