def delete(self, req, team_id, user_id): if req.user.user_id == user_id: raise serializers.ValidationError("不能删除自己", status.HTTP_400_BAD_REQUEST) try: user_services.get_user_by_tenant_id(team_id, user_id) user_services.batch_delete_users(team_id, [user_id]) return Response(None, status.HTTP_200_OK) except UserNotExistError as e: return Response({"msg": e.message}, status.HTTP_404_NOT_FOUND) except Tenants.DoesNotExist: return Response({"msg": "团队不存在"}, status.HTTP_404_NOT_FOUND)
def delete(self, request, team_name, *args, **kwargs): """ 删除租户内的用户 (可批量可单个) --- parameters: - name: team_name description: 团队名称 required: true type: string paramType: path - name: user_ids description: 用户名 user_id1,user_id2 ... required: true type: string paramType: body """ try: no_auth = "owner" not in team_services.get_user_perm_identitys_in_permtenant( user_id=request.user.user_id, tenant_name=team_name) if no_auth: code = 400 result = general_message(code, "no identity", "没有权限") else: user_ids = str(request.data.get("user_ids", None)) if not user_ids: result = general_message(400, "failed", "删除成员不能为空") return Response(result, status=400) if str(request.user.user_id) in user_ids: result = general_message(400, "failed", "不能删除自己") return Response(result, status=400) try: user_id_list = user_ids.split(",") user_services.batch_delete_users(team_name, user_id_list) result = general_message(200, "delete the success", "删除成功") except Tenants.DoesNotExist as e: logger.exception(e) result = generate_result(400, "tenant not exist", "{}团队不存在".format(team_name)) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result) except Exception as e: code = 500 logger.exception(e) result = error_message(e.message) return Response(result, status=code)
def delete(self, request, team_name, *args, **kwargs): """ 删除租户内的用户 (可批量可单个) --- parameters: - name: team_name description: 团队名称 required: true type: string paramType: path - name: user_ids description: 用户名 user_id1,user_id2 ... required: true type: string paramType: body """ try: user_ids = request.data.get("user_ids", []) if not user_ids: result = general_message(400, "failed", "删除成员不能为空") return Response(result, status=400) if request.user.user_id in user_ids: result = general_message(400, "failed", "不能删除自己") return Response(result, status=400) for user_id in user_ids: if user_id == self.tenant.creater: result = general_message(400, "failed", "不能删除团队创建者!") return Response(result, status=400) try: user_services.batch_delete_users(team_name, user_ids) result = general_message(200, "delete the success", "删除成功") except Tenants.DoesNotExist as e: logger.exception(e) result = general_message(400, "tenant not exist", "{}团队不存在".format(team_name)) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result) except Exception as e: code = 500 logger.exception(e) result = error_message(e.message) return Response(result, status=code)
def delete(self, request, team_name, *args, **kwargs): """ 删除租户内的用户 (可批量可单个) --- parameters: - name: team_name description: 团队名称 required: true type: string paramType: path - name: user_ids description: 用户名 user_id1,user_id2 ... required: true type: string paramType: body """ try: identitys = team_services.get_user_perm_identitys_in_permtenant( user_id=request.user.user_id, tenant_name=team_name ) perm_tuple = team_services.get_user_perm_in_tenant(user_id=request.user.user_id, tenant_name=team_name) if "owner" not in identitys and "admin" not in identitys and "manage_team_member_permissions" not in perm_tuple: code = 400 result = general_message(code, "no identity", "没有权限") return Response(result, status=code) user_ids = str(request.data.get("user_ids", None)) if not user_ids: result = general_message(400, "failed", "删除成员不能为空") return Response(result, status=400) try: user_id_list = [int(user_id) for user_id in user_ids.split(",")] except Exception as e: logger.exception(e) result = general_message(200, "Incorrect parameter format", "参数格式不正确") return Response(result, status=400) if request.user.user_id in user_id_list: result = general_message(400, "failed", "不能删除自己") return Response(result, status=400) for user_id in user_id_list: print user_id role_name_list = team_services.get_user_perm_role_in_permtenant(user_id=user_id, tenant_name=team_name) identity_list = team_services.get_user_perm_identitys_in_permtenant(user_id=user_id, tenant_name=team_name) print role_name_list if "owner" in role_name_list or "owner" in identity_list: result = general_message(400, "failed", "不能删除团队创建者!") return Response(result, status=400) try: user_services.batch_delete_users(team_name, user_id_list) result = general_message(200, "delete the success", "删除成功") except Tenants.DoesNotExist as e: logger.exception(e) result = generate_result(400, "tenant not exist", "{}团队不存在".format(team_name)) except Exception as e: logger.exception(e) result = error_message(e.message) return Response(result) except Exception as e: code = 500 logger.exception(e) result = error_message(e.message) return Response(result, status=code)