From fa0879f15b072dee1996c79b219b4653ae0216d5 Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Tue, 14 Oct 2014 13:47:44 -0400 Subject: [PATCH] Add basic access for system jobs (super user only) --- awx/main/access.py | 18 ++++++++++++++++++ awx/main/models/jobs.py | 4 ++++ 2 files changed, 22 insertions(+) diff --git a/awx/main/access.py b/awx/main/access.py index bb8912bd88..f7d5430945 100644 --- a/awx/main/access.py +++ b/awx/main/access.py @@ -1052,6 +1052,22 @@ class JobAccess(BaseAccess): def can_cancel(self, obj): return self.can_read(obj) and obj.can_cancel +class SystemJobTemplateAccess(BaseAccess): + ''' + I can only see/manage System Job Templates if I'm a super user + ''' + + model = SystemJobTemplate + + def can_start(self, obj): + return self.can_read(obj) + +class SystemJobAccess(BaseAccess): + ''' + I can only see manage System Jobs if I'm a super user + ''' + pass + class JobHostSummaryAccess(BaseAccess): ''' I can see job/host summary records whenever I can read both job and host. @@ -1366,6 +1382,8 @@ register_access(JobTemplate, JobTemplateAccess) register_access(Job, JobAccess) register_access(JobHostSummary, JobHostSummaryAccess) register_access(JobEvent, JobEventAccess) +register_access(SystemJobTemplate, SystemJobTemplateAccess) +register_access(SystemJob, SystemJobAccess) register_access(Schedule, ScheduleAccess) register_access(UnifiedJobTemplate, UnifiedJobTemplateAccess) register_access(UnifiedJob, UnifiedJobAccess) diff --git a/awx/main/models/jobs.py b/awx/main/models/jobs.py index 53b9c40048..1b6ddb30b9 100644 --- a/awx/main/models/jobs.py +++ b/awx/main/models/jobs.py @@ -944,6 +944,10 @@ class SystemJobTemplate(UnifiedJobTemplate, SystemJobOptions): def _get_unified_job_field_names(cls): return ['name', 'description', 'job_type'] + def get_absolute_url(self): + return reverse('api:system_job_template_detail', args=(self.pk,)) + + class SystemJob(UnifiedJob, SystemJobOptions): class Meta: