diff --git a/apps/rbac/api/rolebinding.py b/apps/rbac/api/rolebinding.py index 4f3354e5b..bd33a7168 100644 --- a/apps/rbac/api/rolebinding.py +++ b/apps/rbac/api/rolebinding.py @@ -27,14 +27,7 @@ class RoleBindingViewSet(OrgBulkModelViewSet): def get_queryset(self): queryset = self._get_queryset() \ - .prefetch_related('user', 'role', 'org') \ - .annotate( - user_display=Concat( - F('user__name'), Value('('), - F('user__username'), Value(')') - ), - role_display=F('role__name') - ) + .prefetch_related('user', 'role', 'org') return queryset def _get_queryset(self): diff --git a/apps/rbac/serializers/rolebinding.py b/apps/rbac/serializers/rolebinding.py index 5e26cdf42..c5e64946d 100644 --- a/apps/rbac/serializers/rolebinding.py +++ b/apps/rbac/serializers/rolebinding.py @@ -1,6 +1,8 @@ from django.utils.translation import gettext_lazy as _ from rest_framework import serializers +from common.serializers.fields import ObjectRelatedField +from users.models import User from orgs.serializers import CurrentOrgDefault from ..models import RoleBinding, SystemRoleBinding, OrgRoleBinding @@ -10,16 +12,18 @@ __all__ = [ class RoleBindingSerializer(serializers.ModelSerializer): + user = ObjectRelatedField( + required=False, queryset=User.objects, + label=_('User'), attrs=('id', 'name', 'username') + ) + class Meta: model = RoleBinding fields = [ - 'id', 'user', 'user_display', 'role', 'role_display', - 'scope', 'org', 'org_name', + 'id', 'user', 'role', 'scope', 'org', 'org_name', ] read_only_fields = ['scope'] extra_kwargs = { - 'user_display': {'label': _('User display')}, - 'role_display': {'label': _('Role display')}, 'org_name': {'label': _("Org name")} }