mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
discoveries conditions are moved to register so they don't hold off another actions
This commit is contained in:
parent
30fb968307
commit
7a84c76b3d
7 changed files with 78 additions and 54 deletions
|
|
@ -1,6 +1,3 @@
|
|||
# :coding: utf-8
|
||||
# :copyright: Copyright (c) 2015 Milan Kolar
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
import logging
|
||||
|
|
@ -45,9 +42,7 @@ class ComponentOpen(BaseAction):
|
|||
# Get component filepath
|
||||
# TODO with locations it will be different???
|
||||
fpath = entity['component_locations'][0]['resource_identifier']
|
||||
items = fpath.split(os.sep)
|
||||
items.pop(-1)
|
||||
fpath = os.sep.join(items)
|
||||
fpath = os.path.normpath(os.path.dirname(fpath))
|
||||
|
||||
if os.path.isdir(fpath):
|
||||
if 'win' in sys.platform: # windows
|
||||
|
|
@ -80,8 +75,7 @@ def register(session, **kw):
|
|||
if not isinstance(session, ftrack_api.session.Session):
|
||||
return
|
||||
|
||||
action_handler = ComponentOpen(session)
|
||||
action_handler.register()
|
||||
ComponentOpen(session).register()
|
||||
|
||||
|
||||
def main(arguments=None):
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
# :coding: utf-8
|
||||
# :copyright: Copyright (c) 2017 ftrack
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
import json
|
||||
import ftrack_api
|
||||
import arrow
|
||||
import logging
|
||||
from pype.ftrack import BaseAction, get_ca_mongoid
|
||||
|
||||
"""
|
||||
|
|
@ -136,14 +135,8 @@ class CustomAttributes(BaseAction):
|
|||
Validation
|
||||
- action is only for Administrators
|
||||
'''
|
||||
success = False
|
||||
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'] == 'Administrator':
|
||||
success = True
|
||||
|
||||
return success
|
||||
return True
|
||||
|
||||
def launch(self, session, entities, event):
|
||||
# JOB SETTINGS
|
||||
|
|
@ -584,14 +577,27 @@ def register(session, **kw):
|
|||
if not isinstance(session, ftrack_api.session.Session):
|
||||
return
|
||||
|
||||
action_handler = CustomAttributes(session)
|
||||
action_handler.register()
|
||||
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__
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def main(arguments=None):
|
||||
'''Set up logging and register action.'''
|
||||
import logging
|
||||
|
||||
if arguments is None:
|
||||
arguments = []
|
||||
|
||||
|
|
|
|||
|
|
@ -141,8 +141,7 @@ def register(session, **kw):
|
|||
if not isinstance(session, ftrack_api.session.Session):
|
||||
return
|
||||
|
||||
action_handler = CreateFolders(session)
|
||||
action_handler.register()
|
||||
CreateFolders(session).register()
|
||||
|
||||
|
||||
def main(arguments=None):
|
||||
|
|
|
|||
|
|
@ -33,17 +33,7 @@ class DeleteAsset(BaseAction):
|
|||
if entityType.lower() not in valid:
|
||||
return False
|
||||
|
||||
discover = False
|
||||
roleList = ['Pypeclub', 'Administrator']
|
||||
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, event):
|
||||
self.reset_session()
|
||||
|
|
@ -320,7 +310,23 @@ def register(session, **kw):
|
|||
if not isinstance(session, ftrack_api.session.Session):
|
||||
return
|
||||
|
||||
DeleteAsset(session).register()
|
||||
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__
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def main(arguments=None):
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ class AssetsRemover(BaseAction):
|
|||
def discover(self, session, entities, event):
|
||||
''' Validation '''
|
||||
selection = event["data"].get("selection", None)
|
||||
if selection is None:
|
||||
if selection is None or len(selection) != 1:
|
||||
return False
|
||||
|
||||
valid = ["show", "task"]
|
||||
|
|
@ -29,17 +29,7 @@ class AssetsRemover(BaseAction):
|
|||
if entityType.lower() not in valid:
|
||||
return False
|
||||
|
||||
discover = False
|
||||
roleList = ['Pypeclub', 'Administrator']
|
||||
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 interface(self, session, entities, event):
|
||||
if not event['data'].get('values', {}):
|
||||
|
|
@ -145,8 +135,23 @@ def register(session, **kw):
|
|||
if not isinstance(session, ftrack_api.session.Session):
|
||||
return
|
||||
|
||||
action_handler = AssetsRemover(session)
|
||||
action_handler.register()
|
||||
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__
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def main(arguments=None):
|
||||
|
|
|
|||
|
|
@ -103,9 +103,23 @@ def register(session, **kw):
|
|||
# return without doing anything.
|
||||
if not isinstance(session, ftrack_api.session.Session):
|
||||
return
|
||||
roleList = ['Pypeclub', 'Administrator']
|
||||
|
||||
action_handler = JobKiller(session)
|
||||
action_handler.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:
|
||||
JobKiller(session).register()
|
||||
else:
|
||||
logging.info(
|
||||
"!!! You're missing required permissions for action {}".format(
|
||||
JobKiller.__name__
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def main(arguments=None):
|
||||
|
|
|
|||
|
|
@ -107,9 +107,9 @@ class AppAction(BaseHandler):
|
|||
if avalon_project is None:
|
||||
return False
|
||||
else:
|
||||
apps = []
|
||||
for app in avalon_project['config']['apps']:
|
||||
apps.append(app['name'])
|
||||
apps = [app['name'] for app in avalon_project['config'].get(
|
||||
'apps', []
|
||||
)]
|
||||
|
||||
if self.identifier not in apps:
|
||||
return False
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue