mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-27 06:12:19 +01:00
available user roles are set in actions
This commit is contained in:
parent
c1c483390d
commit
931f461cd8
6 changed files with 20 additions and 104 deletions
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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.'''
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue