mirror of https://github.com/jumpserver/jumpserver
Merge branch 'bugfix' of github.com:jumpserver/jumpserver into bugfix
commit
62689b240b
|
@ -38,12 +38,12 @@ class SessionViewSet(OrgBulkModelViewSet):
|
|||
('date_start', ('date_from', 'date_to'))
|
||||
]
|
||||
|
||||
def get_object(self):
|
||||
def filter_queryset(self, queryset):
|
||||
queryset = super().filter_queryset(queryset)
|
||||
# 解决guacamole更新session时并发导致幽灵会话的问题
|
||||
obj = super().get_object()
|
||||
if self.request.method in ('PATCH', ):
|
||||
obj = obj.select_for_update()
|
||||
return obj
|
||||
if self.request.method in ('PATCH',):
|
||||
queryset = queryset.select_for_update()
|
||||
return queryset
|
||||
|
||||
@property
|
||||
def filter_backends(self):
|
||||
|
|
|
@ -5,8 +5,11 @@ from rest_framework import generics
|
|||
from rest_framework_bulk import BulkModelViewSet
|
||||
from rest_framework.pagination import LimitOffsetPagination
|
||||
|
||||
from ..serializers import UserGroupSerializer, \
|
||||
UserGroupUpdateMemberSerializer
|
||||
from ..serializers import (
|
||||
UserGroupSerializer,
|
||||
UserGroupListSerializer,
|
||||
UserGroupUpdateMemberSerializer,
|
||||
)
|
||||
from ..models import UserGroup
|
||||
from common.permissions import IsOrgAdmin
|
||||
from common.mixins import IDInCacheFilterMixin
|
||||
|
@ -23,6 +26,12 @@ class UserGroupViewSet(IDInCacheFilterMixin, BulkModelViewSet):
|
|||
permission_classes = (IsOrgAdmin,)
|
||||
pagination_class = LimitOffsetPagination
|
||||
|
||||
def get_serializer_class(self):
|
||||
if self.action in ("list", 'retrieve') and \
|
||||
self.request.query_params.get("display"):
|
||||
return UserGroupListSerializer
|
||||
return self.serializer_class
|
||||
|
||||
|
||||
class UserGroupUpdateUserApi(generics.RetrieveUpdateAPIView):
|
||||
queryset = UserGroup.objects.all()
|
||||
|
|
|
@ -6,10 +6,19 @@ from rest_framework import serializers
|
|||
|
||||
from common.utils import get_signer, validate_ssh_public_key
|
||||
from common.mixins import BulkSerializerMixin
|
||||
from common.fields import StringManyToManyField
|
||||
from common.serializers import AdaptedBulkListSerializer
|
||||
from orgs.mixins import BulkOrgResourceModelSerializer
|
||||
from ..models import User, UserGroup
|
||||
|
||||
|
||||
__all__ = [
|
||||
'UserSerializer', 'UserPKUpdateSerializer', 'UserUpdateGroupSerializer',
|
||||
'UserGroupSerializer', 'UserGroupListSerializer',
|
||||
'UserGroupUpdateMemberSerializer', 'ChangeUserPasswordSerializer'
|
||||
]
|
||||
|
||||
|
||||
signer = get_signer()
|
||||
|
||||
|
||||
|
@ -108,6 +117,10 @@ class UserGroupSerializer(BulkOrgResourceModelSerializer):
|
|||
}
|
||||
|
||||
|
||||
class UserGroupListSerializer(UserGroupSerializer):
|
||||
users = StringManyToManyField(many=True, read_only=True)
|
||||
|
||||
|
||||
class UserGroupUpdateMemberSerializer(serializers.ModelSerializer):
|
||||
users = serializers.PrimaryKeyRelatedField(many=True, queryset=User.objects.all())
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ function initTable() {
|
|||
}
|
||||
}}
|
||||
],
|
||||
ajax_url: '{% url "api-users:user-group-list" %}',
|
||||
ajax_url: '{% url "api-users:user-group-list" %}?display=1',
|
||||
columns: [{data: function(){return ""}}, {data: "name" }, {data: "users"},
|
||||
{data: "comment"}, {data: "id" }],
|
||||
order: [],
|
||||
|
|
Loading…
Reference in New Issue