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'))
|
('date_start', ('date_from', 'date_to'))
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_object(self):
|
def filter_queryset(self, queryset):
|
||||||
|
queryset = super().filter_queryset(queryset)
|
||||||
# 解决guacamole更新session时并发导致幽灵会话的问题
|
# 解决guacamole更新session时并发导致幽灵会话的问题
|
||||||
obj = super().get_object()
|
if self.request.method in ('PATCH',):
|
||||||
if self.request.method in ('PATCH', ):
|
queryset = queryset.select_for_update()
|
||||||
obj = obj.select_for_update()
|
return queryset
|
||||||
return obj
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def filter_backends(self):
|
def filter_backends(self):
|
||||||
|
|
|
@ -5,8 +5,11 @@ from rest_framework import generics
|
||||||
from rest_framework_bulk import BulkModelViewSet
|
from rest_framework_bulk import BulkModelViewSet
|
||||||
from rest_framework.pagination import LimitOffsetPagination
|
from rest_framework.pagination import LimitOffsetPagination
|
||||||
|
|
||||||
from ..serializers import UserGroupSerializer, \
|
from ..serializers import (
|
||||||
UserGroupUpdateMemberSerializer
|
UserGroupSerializer,
|
||||||
|
UserGroupListSerializer,
|
||||||
|
UserGroupUpdateMemberSerializer,
|
||||||
|
)
|
||||||
from ..models import UserGroup
|
from ..models import UserGroup
|
||||||
from common.permissions import IsOrgAdmin
|
from common.permissions import IsOrgAdmin
|
||||||
from common.mixins import IDInCacheFilterMixin
|
from common.mixins import IDInCacheFilterMixin
|
||||||
|
@ -23,6 +26,12 @@ class UserGroupViewSet(IDInCacheFilterMixin, BulkModelViewSet):
|
||||||
permission_classes = (IsOrgAdmin,)
|
permission_classes = (IsOrgAdmin,)
|
||||||
pagination_class = LimitOffsetPagination
|
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):
|
class UserGroupUpdateUserApi(generics.RetrieveUpdateAPIView):
|
||||||
queryset = UserGroup.objects.all()
|
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.utils import get_signer, validate_ssh_public_key
|
||||||
from common.mixins import BulkSerializerMixin
|
from common.mixins import BulkSerializerMixin
|
||||||
|
from common.fields import StringManyToManyField
|
||||||
from common.serializers import AdaptedBulkListSerializer
|
from common.serializers import AdaptedBulkListSerializer
|
||||||
from orgs.mixins import BulkOrgResourceModelSerializer
|
from orgs.mixins import BulkOrgResourceModelSerializer
|
||||||
from ..models import User, UserGroup
|
from ..models import User, UserGroup
|
||||||
|
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'UserSerializer', 'UserPKUpdateSerializer', 'UserUpdateGroupSerializer',
|
||||||
|
'UserGroupSerializer', 'UserGroupListSerializer',
|
||||||
|
'UserGroupUpdateMemberSerializer', 'ChangeUserPasswordSerializer'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
signer = get_signer()
|
signer = get_signer()
|
||||||
|
|
||||||
|
|
||||||
|
@ -108,6 +117,10 @@ class UserGroupSerializer(BulkOrgResourceModelSerializer):
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class UserGroupListSerializer(UserGroupSerializer):
|
||||||
|
users = StringManyToManyField(many=True, read_only=True)
|
||||||
|
|
||||||
|
|
||||||
class UserGroupUpdateMemberSerializer(serializers.ModelSerializer):
|
class UserGroupUpdateMemberSerializer(serializers.ModelSerializer):
|
||||||
users = serializers.PrimaryKeyRelatedField(many=True, queryset=User.objects.all())
|
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"},
|
columns: [{data: function(){return ""}}, {data: "name" }, {data: "users"},
|
||||||
{data: "comment"}, {data: "id" }],
|
{data: "comment"}, {data: "id" }],
|
||||||
order: [],
|
order: [],
|
||||||
|
|
Loading…
Reference in New Issue