mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-08 02:39:22 +00:00
perf: 修复 org role binding 在root组织下看到的可能不对
This commit is contained in:
@@ -22,9 +22,10 @@ class RoleBindingViewSet(OrgBulkModelViewSet):
|
||||
'user__name', 'user__username', 'role__name'
|
||||
]
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset() \
|
||||
.prefetch_related('user', 'role') \
|
||||
@staticmethod
|
||||
def annotate_queryset(queryset):
|
||||
queryset = queryset \
|
||||
.prefetch_related('user', 'role', 'org') \
|
||||
.annotate(
|
||||
user_display=Concat(
|
||||
F('user__name'), Value('('),
|
||||
@@ -34,6 +35,11 @@ class RoleBindingViewSet(OrgBulkModelViewSet):
|
||||
)
|
||||
return queryset
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = super().get_queryset()
|
||||
queryset = self.annotate_queryset(queryset)
|
||||
return queryset
|
||||
|
||||
|
||||
class SystemRoleBindingViewSet(RoleBindingViewSet):
|
||||
model = SystemRoleBinding
|
||||
@@ -49,9 +55,13 @@ class SystemRoleBindingViewSet(RoleBindingViewSet):
|
||||
|
||||
|
||||
class OrgRoleBindingViewSet(RoleBindingViewSet):
|
||||
model = OrgRoleBinding
|
||||
serializer_class = serializers.OrgRoleBindingSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = OrgRoleBinding.objects.root_all()
|
||||
queryset = self.annotate_queryset(queryset)
|
||||
return queryset
|
||||
|
||||
def perform_bulk_create(self, serializer):
|
||||
validated_data = serializer.validated_data
|
||||
bindings = [
|
||||
|
Reference in New Issue
Block a user