refactor: user add batch delete
This commit is contained in:
parent
efd273b3bc
commit
070a5d4ed3
@ -129,6 +129,11 @@ class DeleteUserApi(APIMixin):
|
|||||||
required=True,
|
required=True,
|
||||||
)]
|
)]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_request():
|
||||||
|
return serializers.ListSerializer(child=serializers.CharField(required=True), required=True,
|
||||||
|
label=_('User IDs'))
|
||||||
|
|
||||||
|
|
||||||
class ChangeUserPasswordApi(APIMixin):
|
class ChangeUserPasswordApi(APIMixin):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|||||||
@ -403,6 +403,18 @@ class UserManageSerializer(serializers.Serializer):
|
|||||||
users = User.objects.filter(id__in=user_ids).values('id', 'nick_name')
|
users = User.objects.filter(id__in=user_ids).values('id', 'nick_name')
|
||||||
return list(users)
|
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):
|
def update_user_role(instance, user):
|
||||||
workspace_user_role_mapping_model = DatabaseModelManage.get_model("workspace_user_role_mapping")
|
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(),
|
path('workspace/<str:workspace_id>/user/profile', views.TestWorkspacePermissionUserView.as_view(),
|
||||||
name="test_workspace_id_permission"),
|
name="test_workspace_id_permission"),
|
||||||
path("user_manage", views.UserManage.as_view(), name="user_manage"),
|
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/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>", views.UserManage.Operate.as_view(), name="user_manage_operate"),
|
||||||
path("user_manage/<str:user_id>/re_password", views.UserManage.RePassword.as_view(),
|
path("user_manage/<str:user_id>/re_password", views.UserManage.RePassword.as_view(),
|
||||||
|
|||||||
@ -145,6 +145,20 @@ class UserManage(APIView):
|
|||||||
return result.success(
|
return result.success(
|
||||||
UserManageSerializer.Operate(data={'id': user_id}).edit(request.data, with_valid=True))
|
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):
|
class RePassword(APIView):
|
||||||
authentication_classes = [TokenAuth]
|
authentication_classes = [TokenAuth]
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user