remove URL and add roles endpoint for JobTemplate

This commit is contained in:
Wayne Witzel III
2016-05-10 16:29:11 -04:00
parent 358bc31450
commit 6a5f4d6113
3 changed files with 17 additions and 3 deletions

View File

@@ -329,7 +329,6 @@ class BaseSerializer(serializers.ModelSerializer):
'id': role.id,
'name': role.name,
'description': role.description,
'url': role.get_absolute_url(),
}
if len(roles) > 0:
summary_fields['roles'] = roles
@@ -512,6 +511,8 @@ class UnifiedJobTemplateSerializer(BaseSerializer):
res['last_job'] = obj.last_job.get_absolute_url()
if obj.next_schedule:
res['next_schedule'] = obj.next_schedule.get_absolute_url()
res['roles'] = reverse('api:job_template_roles_list', args=(obj.pk,))
return res
def get_types(self):
@@ -1510,7 +1511,7 @@ class ResourceAccessListElementSerializer(UserSerializer):
role_dict['related'] = reverse_gfk(role.content_object)
except:
pass
return { 'role': role_dict, 'active_roles': get_roles_on_resource(obj, role)}
return { 'role': role_dict, 'descendant_roles': get_roles_on_resource(obj, role)}
def format_team_role_perm(team_role, permissive_role_ids):
role = team_role.children.filter(id__in=permissive_role_ids)[0]
@@ -1528,7 +1529,7 @@ class ResourceAccessListElementSerializer(UserSerializer):
role_dict['related'] = reverse_gfk(role.content_object)
except:
pass
return { 'role': role_dict, 'active_roles': get_roles_on_resource(obj, team_role)}
return { 'role': role_dict, 'descendant_roles': get_roles_on_resource(obj, team_role)}
team_content_type = ContentType.objects.get_for_model(Team)
content_type = ContentType.objects.get_for_model(obj)

View File

@@ -182,6 +182,7 @@ job_template_urls = patterns('awx.api.views',
url(r'^(?P<pk>[0-9]+)/notification_templates_error/$', 'job_template_notification_templates_error_list'),
url(r'^(?P<pk>[0-9]+)/notification_templates_success/$', 'job_template_notification_templates_success_list'),
url(r'^(?P<pk>[0-9]+)/access_list/$', 'job_template_access_list'),
url(r'^(?P<pk>[0-9]+)/roles/$', 'job_template_roles_list'),
url(r'^(?P<pk>[0-9]+)/labels/$', 'job_template_label_list'),
)

View File

@@ -2480,6 +2480,18 @@ class JobTemplateAccessList(ResourceAccessList):
resource_model = JobTemplate
new_in_300 = True
class JobTemplateRolesList(SubListAPIView):
model = Role
serializer_class = RoleSerializer
parent_model = JobTemplate
new_in_300 = True
def get_queryset(self):
jt = self.get_parent_object()
content_type = ContentType.objects.get_for_model(JobTemplate)
return Role.objects.filter(content_type=content_type, object_id=jt.pk).all()
class SystemJobTemplateList(ListAPIView):
model = SystemJobTemplate