refactor: user filter
parent
6cdd8ffe39
commit
a26c4320dd
|
|
@ -177,16 +177,35 @@ class UserManageSerializer(serializers.Serializer):
|
||||||
raise ExceptionCodeConstants.NICKNAME_IS_EXIST.value.to_app_api_exception()
|
raise ExceptionCodeConstants.NICKNAME_IS_EXIST.value.to_app_api_exception()
|
||||||
|
|
||||||
class Query(serializers.Serializer):
|
class Query(serializers.Serializer):
|
||||||
email_or_username = serializers.CharField(required=False, allow_null=True,
|
username = serializers.CharField(
|
||||||
label=_('Email or username'))
|
required=False,
|
||||||
|
label=_("Username"),
|
||||||
|
max_length=20,
|
||||||
|
allow_blank=True
|
||||||
|
)
|
||||||
|
nick_name = serializers.CharField(
|
||||||
|
required=False,
|
||||||
|
label=_("Nick Name"),
|
||||||
|
max_length=20,
|
||||||
|
allow_blank=True
|
||||||
|
)
|
||||||
|
email = serializers.CharField(
|
||||||
|
required=False,
|
||||||
|
label=_("Email"),
|
||||||
|
allow_blank=True,
|
||||||
|
)
|
||||||
|
|
||||||
def get_query_set(self):
|
def get_query_set(self):
|
||||||
email_or_username = self.data.get('email_or_username')
|
username = self.data.get('username')
|
||||||
|
nick_name = self.data.get('nick_name')
|
||||||
|
email = self.data.get('email')
|
||||||
query_set = QuerySet(User)
|
query_set = QuerySet(User)
|
||||||
if email_or_username is not None:
|
if username is not None:
|
||||||
query_set = query_set.filter(
|
query_set = query_set.filter(username__contains=username)
|
||||||
Q(username__contains=email_or_username) | Q(email__contains=email_or_username) | Q(
|
if nick_name is not None:
|
||||||
nick_name__contains=email_or_username))
|
query_set = query_set.filter(nick_name__contains=nick_name)
|
||||||
|
if email is not None:
|
||||||
|
query_set = query_set.filter(email__contains=email)
|
||||||
query_set = query_set.order_by("-create_time")
|
query_set = query_set.order_by("-create_time")
|
||||||
return query_set
|
return query_set
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ from common.constants.cache_version import Cache_Version
|
||||||
from common.constants.permission_constants import PermissionConstants, Permission, Group, Operate, RoleConstants
|
from common.constants.permission_constants import PermissionConstants, Permission, Group, Operate, RoleConstants
|
||||||
from common.log.log import log
|
from common.log.log import log
|
||||||
from common.result import result
|
from common.result import result
|
||||||
|
from common.utils.common import query_params_to_single_dict
|
||||||
from maxkb.const import CONFIG
|
from maxkb.const import CONFIG
|
||||||
from models_provider.api.model import DefaultModelResponse
|
from models_provider.api.model import DefaultModelResponse
|
||||||
from tools.serializers.tool import encryption
|
from tools.serializers.tool import encryption
|
||||||
|
|
@ -274,8 +275,7 @@ class UserManage(APIView):
|
||||||
@has_permissions(PermissionConstants.USER_READ, RoleConstants.ADMIN)
|
@has_permissions(PermissionConstants.USER_READ, RoleConstants.ADMIN)
|
||||||
def get(self, request: Request, current_page, page_size):
|
def get(self, request: Request, current_page, page_size):
|
||||||
d = UserManageSerializer.Query(
|
d = UserManageSerializer.Query(
|
||||||
data={'email_or_username': request.query_params.get('email_or_username', None),
|
data={**query_params_to_single_dict(request.query_params)})
|
||||||
'user_id': str(request.user.id)})
|
|
||||||
return result.success(d.page(current_page, page_size))
|
return result.success(d.page(current_page, page_size))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue