38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
from crc.api.common import ApiError
|
|
from crc.scripts.script import Script
|
|
from crc.services.study_service import StudyService
|
|
|
|
|
|
class UpdateStudyAssociates(Script):
|
|
|
|
argument_error_message = "You must supply at least one argument to the " \
|
|
"update_study_associates task, an array of objects in the form " \
|
|
"{'uid':'someid', 'role': 'text', 'send_email: 'boolean', " \
|
|
"'access':'boolean'} "
|
|
|
|
|
|
def get_description(self):
|
|
return """Allows you to associate other users with a study - only 'uid' is a required keyword argument
|
|
|
|
|
|
An empty list will delete the existing Associated list (except owner)
|
|
|
|
The UID will be validated vs ldap and will raise an error if the uva_uid is not found. This will replace any
|
|
association already in place for this user.
|
|
|
|
example : update_study_associate(uid='sbp3ey',role='Unicorn Herder',send_email=False, access=True)
|
|
|
|
"""
|
|
|
|
def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
|
|
if kwargs.get('uid') is None:
|
|
raise ApiError('uid_is_required_argument','a valid keyword argument of uid is required, it should be the '
|
|
'uva uid for this user')
|
|
return True
|
|
|
|
|
|
|
|
def do_task(self, task, study_id, workflow_id, *args, **kwargs):
|
|
return StudyService.update_study_associate(study_id=study_id,**kwargs)
|
|
|