mirror of
https://github.com/ansible/awx.git
synced 2026-05-08 01:47:35 -02:30
Merge pull request #5066 from AlanCoding/cred_list
apply some speedups to credential list
This commit is contained in:
@@ -1730,11 +1730,11 @@ class CredentialSerializer(BaseSerializer):
|
|||||||
owner_teams = reverse('api:credential_owner_teams_list', args=(obj.pk,)),
|
owner_teams = reverse('api:credential_owner_teams_list', args=(obj.pk,)),
|
||||||
))
|
))
|
||||||
|
|
||||||
parents = obj.admin_role.parents.exclude(object_id__isnull=True)
|
parents = [role for role in obj.admin_role.parents.all() if role.object_id is not None]
|
||||||
if parents.count() > 0:
|
if parents:
|
||||||
res.update({parents[0].content_type.name:parents[0].content_object.get_absolute_url()})
|
res.update({parents[0].content_type.name:parents[0].content_object.get_absolute_url()})
|
||||||
elif obj.admin_role.members.count() > 0:
|
elif len(obj.admin_role.members.all()) > 0:
|
||||||
user = obj.admin_role.members.first()
|
user = obj.admin_role.members.all()[0]
|
||||||
res.update({'user': reverse('api:user_detail', args=(user.pk,))})
|
res.update({'user': reverse('api:user_detail', args=(user.pk,))})
|
||||||
|
|
||||||
return res
|
return res
|
||||||
@@ -1752,7 +1752,7 @@ class CredentialSerializer(BaseSerializer):
|
|||||||
'url': reverse('api:user_detail', args=(user.pk,)),
|
'url': reverse('api:user_detail', args=(user.pk,)),
|
||||||
})
|
})
|
||||||
|
|
||||||
for parent in obj.admin_role.parents.exclude(object_id__isnull=True).all():
|
for parent in [role for role in obj.admin_role.parents.all() if role.object_id is not None]:
|
||||||
summary_dict['owners'].append({
|
summary_dict['owners'].append({
|
||||||
'id': parent.content_object.pk,
|
'id': parent.content_object.pk,
|
||||||
'type': camelcase_to_underscore(parent.content_object.__class__.__name__),
|
'type': camelcase_to_underscore(parent.content_object.__class__.__name__),
|
||||||
|
|||||||
@@ -1436,6 +1436,7 @@ class CredentialList(ListCreateAPIView):
|
|||||||
|
|
||||||
model = Credential
|
model = Credential
|
||||||
serializer_class = CredentialSerializerCreate
|
serializer_class = CredentialSerializerCreate
|
||||||
|
capabilities_prefetch = ['admin', 'use']
|
||||||
|
|
||||||
|
|
||||||
class CredentialOwnerUsersList(SubListAPIView):
|
class CredentialOwnerUsersList(SubListAPIView):
|
||||||
|
|||||||
@@ -817,7 +817,11 @@ class CredentialAccess(BaseAccess):
|
|||||||
permitted to see.
|
permitted to see.
|
||||||
"""
|
"""
|
||||||
qs = self.model.accessible_objects(self.user, 'read_role')
|
qs = self.model.accessible_objects(self.user, 'read_role')
|
||||||
return qs.select_related('created_by', 'modified_by').all()
|
qs = qs.select_related('created_by', 'modified_by')
|
||||||
|
qs = qs.prefetch_related(
|
||||||
|
'admin_role', 'use_role', 'read_role',
|
||||||
|
'admin_role__parents', 'admin_role__members')
|
||||||
|
return qs
|
||||||
|
|
||||||
@check_superuser
|
@check_superuser
|
||||||
def can_read(self, obj):
|
def can_read(self, obj):
|
||||||
|
|||||||
Reference in New Issue
Block a user