mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
refactor: user add batch delete
This commit is contained in:
parent
efd273b3bc
commit
070a5d4ed3
|
|
@ -129,6 +129,11 @@ class DeleteUserApi(APIMixin):
|
|||
required=True,
|
||||
)]
|
||||
|
||||
@staticmethod
|
||||
def get_request():
|
||||
return serializers.ListSerializer(child=serializers.CharField(required=True), required=True,
|
||||
label=_('User IDs'))
|
||||
|
||||
|
||||
class ChangeUserPasswordApi(APIMixin):
|
||||
@staticmethod
|
||||
|
|
|
|||
|
|
@ -403,6 +403,18 @@ class UserManageSerializer(serializers.Serializer):
|
|||
users = User.objects.filter(id__in=user_ids).values('id', 'nick_name')
|
||||
return list(users)
|
||||
|
||||
class BatchDelete(serializers.Serializer):
|
||||
ids = serializers.ListField(required=True, label=_('User IDs'))
|
||||
|
||||
def batch_delete(self, with_valid=True):
|
||||
if with_valid:
|
||||
self.is_valid(raise_exception=True)
|
||||
ids = self.data.get('ids')
|
||||
if not ids:
|
||||
raise AppApiException(1004, _('User IDs cannot be empty'))
|
||||
User.objects.filter(id__in=ids).delete()
|
||||
return True
|
||||
|
||||
|
||||
def update_user_role(instance, user):
|
||||
workspace_user_role_mapping_model = DatabaseModelManage.get_model("workspace_user_role_mapping")
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ urlpatterns = [
|
|||
path('workspace/<str:workspace_id>/user/profile', views.TestWorkspacePermissionUserView.as_view(),
|
||||
name="test_workspace_id_permission"),
|
||||
path("user_manage", views.UserManage.as_view(), name="user_manage"),
|
||||
path("user_manage/batch_delete", views.UserManage.BatchDelete.as_view()),
|
||||
path("user_manage/password", views.UserManage.Password.as_view()),
|
||||
path("user_manage/<str:user_id>", views.UserManage.Operate.as_view(), name="user_manage_operate"),
|
||||
path("user_manage/<str:user_id>/re_password", views.UserManage.RePassword.as_view(),
|
||||
|
|
|
|||
|
|
@ -145,6 +145,20 @@ class UserManage(APIView):
|
|||
return result.success(
|
||||
UserManageSerializer.Operate(data={'id': user_id}).edit(request.data, with_valid=True))
|
||||
|
||||
class BatchDelete(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
|
||||
@extend_schema(methods=['POST'],
|
||||
description=_("Batch delete user"),
|
||||
summary=_("Batch delete user"),
|
||||
operation_id=_("Batch delete user"), # type: ignore
|
||||
tags=[_("User Management")], # type: ignore
|
||||
request=DeleteUserApi.get_request(),
|
||||
responses=DefaultModelResponse.get_response())
|
||||
@has_permissions(PermissionConstants.USER_DELETE)
|
||||
def post(self, request: Request):
|
||||
return result.success(UserManageSerializer.BatchDelete(data=request.data).batch_delete(with_valid=True))
|
||||
|
||||
class RePassword(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue