mirror of
https://github.com/ansible/awx.git
synced 2026-01-13 19:10:07 -03:30
apply some speedups to credential list
This commit is contained in:
parent
18898ac345
commit
2223901028
@ -1723,11 +1723,11 @@ class CredentialSerializer(BaseSerializer):
|
||||
owner_teams = reverse('api:credential_owner_teams_list', args=(obj.pk,)),
|
||||
))
|
||||
|
||||
parents = obj.admin_role.parents.exclude(object_id__isnull=True)
|
||||
if parents.count() > 0:
|
||||
parents = [role for role in obj.admin_role.parents.all() if role.object_id is not None]
|
||||
if parents:
|
||||
res.update({parents[0].content_type.name:parents[0].content_object.get_absolute_url()})
|
||||
elif obj.admin_role.members.count() > 0:
|
||||
user = obj.admin_role.members.first()
|
||||
elif len(obj.admin_role.members.all()) > 0:
|
||||
user = obj.admin_role.members.all()[0]
|
||||
res.update({'user': reverse('api:user_detail', args=(user.pk,))})
|
||||
|
||||
return res
|
||||
@ -1745,7 +1745,7 @@ class CredentialSerializer(BaseSerializer):
|
||||
'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({
|
||||
'id': parent.content_object.pk,
|
||||
'type': camelcase_to_underscore(parent.content_object.__class__.__name__),
|
||||
|
||||
@ -1434,6 +1434,7 @@ class CredentialList(ListCreateAPIView):
|
||||
|
||||
model = Credential
|
||||
serializer_class = CredentialSerializerCreate
|
||||
capabilities_prefetch = ['admin', 'use']
|
||||
|
||||
|
||||
class CredentialOwnerUsersList(SubListAPIView):
|
||||
|
||||
@ -817,7 +817,11 @@ class CredentialAccess(BaseAccess):
|
||||
permitted to see.
|
||||
"""
|
||||
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
|
||||
def can_read(self, obj):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user