mirror of
https://github.com/ansible/awx.git
synced 2026-05-15 21:37:42 -02:30
Merge pull request #1834 from wwitzel3/issue-752
add owners summary_field for Credential
This commit is contained in:
@@ -1627,22 +1627,34 @@ class CredentialSerializer(BaseSerializer):
|
|||||||
access_list = reverse('api:credential_access_list', args=(obj.pk,)),
|
access_list = reverse('api:credential_access_list', args=(obj.pk,)),
|
||||||
))
|
))
|
||||||
|
|
||||||
qs = Organization.objects.filter(admin_role__children=obj.owner_role)
|
parents = obj.owner_role.parents.exclude(object_id__isnull=True)
|
||||||
if qs.count() > 0:
|
if parents.count() > 0:
|
||||||
res.update(dict(organization=qs[0].get_absolute_url()))
|
res.update({parents[0].content_type.name:parents[0].content_object.get_absolute_url()})
|
||||||
|
elif obj.owner_role.members.count() > 0:
|
||||||
|
user = obj.owner_role.members.first()
|
||||||
|
res.update({'user': reverse('api:user_detail', args=(user.pk,))})
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def get_summary_fields(self, obj):
|
def get_summary_fields(self, obj):
|
||||||
summary_dict = super(CredentialSerializer, self).get_summary_fields(obj)
|
summary_dict = super(CredentialSerializer, self).get_summary_fields(obj)
|
||||||
|
summary_dict['owners'] = []
|
||||||
|
|
||||||
qs = Organization.objects.filter(admin_role__children=obj.owner_role)
|
for user in obj.owner_role.members.all():
|
||||||
if qs.count() > 0:
|
summary_dict['owners'].append({
|
||||||
org = qs[0]
|
'id': user.pk,
|
||||||
summary_dict['organization'] = {
|
'name': user.username,
|
||||||
'id': org.id,
|
'description': ' '.join([user.first_name, user.last_name]),
|
||||||
'name': org.name,
|
'url': reverse('api:user_detail', args=(user.pk,)),
|
||||||
'description': org.description,
|
})
|
||||||
}
|
|
||||||
|
for parent in obj.owner_role.parents.exclude(object_id__isnull=True).all():
|
||||||
|
summary_dict['owners'].append({
|
||||||
|
'id': parent.content_object.pk,
|
||||||
|
'name': parent.content_object.name,
|
||||||
|
'description': parent.content_object.description,
|
||||||
|
'url': parent.content_object.get_absolute_url(),
|
||||||
|
})
|
||||||
|
|
||||||
return summary_dict
|
return summary_dict
|
||||||
|
|
||||||
|
|||||||
@@ -137,8 +137,8 @@ def test_credential_detail(post, get, organization, org_admin):
|
|||||||
response = get(reverse('api:credential_detail', args=(response.data['id'],)), org_admin)
|
response = get(reverse('api:credential_detail', args=(response.data['id'],)), org_admin)
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
summary_fields = response.data['summary_fields']
|
summary_fields = response.data['summary_fields']
|
||||||
assert 'organization' in summary_fields
|
assert 'owners' in summary_fields
|
||||||
assert summary_fields['organization']['id'] == organization.id
|
assert summary_fields['owners'][0]['id'] == organization.id
|
||||||
related_fields = response.data['related']
|
related_fields = response.data['related']
|
||||||
assert 'organization' in related_fields
|
assert 'organization' in related_fields
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user