mirror of
https://github.com/ansible/awx.git
synced 2026-05-15 21:37:42 -02:30
allow WFJT admins to cancel scheduled jobs
This commit is contained in:
@@ -1841,7 +1841,9 @@ class WorkflowJobAccess(BaseAccess):
|
|||||||
def can_cancel(self, obj):
|
def can_cancel(self, obj):
|
||||||
if not obj.can_cancel:
|
if not obj.can_cancel:
|
||||||
return False
|
return False
|
||||||
return self.can_delete(obj) or self.user == obj.created_by
|
if self.user == obj.created_by or self.can_delete(obj):
|
||||||
|
return True
|
||||||
|
return obj.workflow_job_template is not None and self.user in obj.workflow_job_template.admin_role
|
||||||
|
|
||||||
|
|
||||||
class AdHocCommandAccess(BaseAccess):
|
class AdHocCommandAccess(BaseAccess):
|
||||||
|
|||||||
@@ -104,6 +104,11 @@ class TestWorkflowJobAccess:
|
|||||||
access = WorkflowJobAccess(rando)
|
access = WorkflowJobAccess(rando)
|
||||||
assert access.can_cancel(workflow_job)
|
assert access.can_cancel(workflow_job)
|
||||||
|
|
||||||
|
def test_admin_cancel_access(self, wfjt, workflow_job, rando):
|
||||||
|
wfjt.admin_role.members.add(rando)
|
||||||
|
access = WorkflowJobAccess(rando)
|
||||||
|
assert access.can_cancel(workflow_job)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
class TestWFJTCopyAccess:
|
class TestWFJTCopyAccess:
|
||||||
|
|||||||
Reference in New Issue
Block a user