mirror of
https://github.com/ansible/awx.git
synced 2026-03-01 00:38:45 -03:30
Clarification of copy RBAC messages
This commit is contained in:
@@ -2910,6 +2910,8 @@ class WorkflowJobTemplateCopy(WorkflowsEnforcementMixin, GenericAPIView):
|
|||||||
copy_TF, messages = request.user.can_access_with_errors(self.model, 'copy', obj)
|
copy_TF, messages = request.user.can_access_with_errors(self.model, 'copy', obj)
|
||||||
data['can_copy'] = copy_TF
|
data['can_copy'] = copy_TF
|
||||||
data['warnings'] = messages
|
data['warnings'] = messages
|
||||||
|
if not copy_TF:
|
||||||
|
data['warnings'] = _('You do not have permission to make a copy.')
|
||||||
return Response(data)
|
return Response(data)
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
|
|||||||
@@ -1043,7 +1043,7 @@ class JobTemplateAccess(BaseAccess):
|
|||||||
Project.accessible_objects(self.user, 'use_role').exists() or
|
Project.accessible_objects(self.user, 'use_role').exists() or
|
||||||
Inventory.accessible_objects(self.user, 'use_role').exists())
|
Inventory.accessible_objects(self.user, 'use_role').exists())
|
||||||
|
|
||||||
# if reference_obj is provided, determine if it can be coppied
|
# if reference_obj is provided, determine if it can be copied
|
||||||
reference_obj = data.get('reference_obj', None)
|
reference_obj = data.get('reference_obj', None)
|
||||||
|
|
||||||
if 'job_type' in data and data['job_type'] == PERM_INVENTORY_SCAN:
|
if 'job_type' in data and data['job_type'] == PERM_INVENTORY_SCAN:
|
||||||
@@ -1543,13 +1543,13 @@ class WorkflowJobTemplateAccess(BaseAccess):
|
|||||||
for node in qs.all():
|
for node in qs.all():
|
||||||
node_errors = {}
|
node_errors = {}
|
||||||
if node.inventory and self.user not in node.inventory.use_role:
|
if node.inventory and self.user not in node.inventory.use_role:
|
||||||
node_errors['inventory'] = 'Prompted inventory %s can not be coppied.' % node.inventory.name
|
node_errors['inventory'] = 'Prompted inventory %s can not be copied.' % node.inventory.name
|
||||||
if node.credential and self.user not in node.credential.use_role:
|
if node.credential and self.user not in node.credential.use_role:
|
||||||
node_errors['credential'] = 'Prompted credential %s can not be coppied.' % node.credential.name
|
node_errors['credential'] = 'Prompted credential %s can not be copied.' % node.credential.name
|
||||||
ujt = node.unified_job_template
|
ujt = node.unified_job_template
|
||||||
if ujt and not self.user.can_access(UnifiedJobTemplate, 'start', ujt, validate_license=False):
|
if ujt and not self.user.can_access(UnifiedJobTemplate, 'start', ujt, validate_license=False):
|
||||||
node_errors['unified_job_template'] = (
|
node_errors['unified_job_template'] = (
|
||||||
'Prompted %s %s can not be coppied.' % (ujt._meta.verbose_name_raw, ujt.name))
|
'Prompted %s %s can not be copied.' % (ujt._meta.verbose_name_raw, ujt.name))
|
||||||
if node_errors:
|
if node_errors:
|
||||||
wfjt_errors[node.id] = node_errors
|
wfjt_errors[node.id] = node_errors
|
||||||
self.messages.update(wfjt_errors)
|
self.messages.update(wfjt_errors)
|
||||||
|
|||||||
Reference in New Issue
Block a user