Beispiel #1
0
    def get(self, request, tenant_name, *args, **kwargs):
        """
        获取某指定团队信息
        ---
        parameters:
            - name: tenant_name
              description: 团队名称
              required: true
              type: string
              paramType: path

        """
        try:
            tenant = tenant_service.get_tenant(tenant_name)
            user_list = tenant_service.get_users_by_tenantID(tenant.ID)
            user_num = len(user_list)
            rt_list = [{
                "tenant_id": tenant.tenant_id,
                "tenant_name": tenant.tenant_name,
                "user_num": user_num,
                "tenant_alias": tenant.tenant_alias
            }]
            result = generate_result("0000", "success", "查询成功", list=rt_list)
        except Tenants.DoesNotExist as e:
            logger.exception(e)
            result = generate_result("1001", "tenant not exist",
                                     "租户{}不存在".format(tenant_name))
        except Exception as e:
            logger.exception(e)
            result = generate_result("9999", "system error", "系统异常")
        return Response(result)
Beispiel #2
0
    def add_user(self, request, tenant_name):
        phone = request.data.get("phone", None)
        user_name = request.data.get("user_name", None)
        email = request.data.get("email", None)
        password = request.data.get("password", None)
        tenant = tenantService.get_tenant(tenant_name)
        if Users.objects.filter(nick_name=user_name).exists():
            raise UserExistError("用户名已存在")
        if Users.objects.filter(email=email).exists():
            raise EmailExistError("邮箱已存在")
        if Users.objects.filter(phone=phone).exists():
            raise PhoneExistError("手机号已存在")

        user = Users(email=email,
                     nick_name=user_name,
                     phone=phone,
                     client_ip=self.get_client_ip(request),
                     rf="backend")
        user.set_password(password)
        user.save()

        PermRelTenant.objects.create(user_id=user.pk,
                                     tenant_id=tenant.pk,
                                     identity='admin')

        codeRepositoriesService.createUser(user, email, password, user_name,
                                           user_name)
Beispiel #3
0
 def post(self, request, tenant_name, *args, **kwargs):
     """
     为团队添加用户
     ---
     parameters:
         - name: tenant_name
           description: 团队名
           required: true
           type: string
           paramType: path
         - name: user_name
           description: 用户名
           required: true
           type: string
           paramType: form
     """
     try:
         user_name = request.data.get("user_name", None)
         if not user_name:
             raise ParamsError("用户名为空")
         user = user_service.get_user_by_username(user_name)
         tenant = tenant_service.get_tenant(tenant_name)
         tenant_service.add_user_to_tenant(tenant, user)
         result = generate_result("0000", "success", "用户添加成功")
     except PermTenantsExistError as e:
         result = generate_result("1009", "permtenant exist", e.message)
     except UserNotExistError as e:
         result = generate_result("1008", "user not exist", e.message)
     except Tenants.DoesNotExist as e:
         logger.exception(e)
         result = generate_result("1001", "tenant not exist", "租户{}不存在".format(tenant_name))
     except Exception as e:
         logger.exception(e)
         result = generate_result("9999", "system error", "系统异常")
     return Response(result)
Beispiel #4
0
    def post(self, request, tenant_name, *args, **kwargs):
        """
        为团队添加用户
        ---
        parameters:
            - name: tenant_name
              description: 团队名
              required: true
              type: string
              paramType: path
            - name: user_name
              description: 用户名
              required: true
              type: string
              paramType: form
            - name: identity
              description: 权限
              required: true
              type: string
              paramType: form
        """
        try:
            user_name = request.data.get("user_name", None)
            if not user_name:
                return Response(
                    generate_result("1003", "username is null", "用户名不能为空"))
            identity = request.data.get("identity", "viewer")
            if not identity:
                return Response(
                    generate_result("1003", "identity is null", "用户权限不能为空"))

            user = user_service.get_user_by_username(user_name)
            tenant = tenant_service.get_tenant(tenant_name)
            if not tenant:
                result = generate_result("1001", "tenant not exist",
                                         "租户{}不存在".format(tenant_name))
                return Response(result)
            enterprise = enterprise_services.get_enterprise_by_id(
                tenant.enterprise_id)
            tenant_service.add_user_to_tenant(tenant, user, identity,
                                              enterprise)
            result = generate_result("0000", "success", "用户添加成功")
        except PermTenantsExistError as e:
            result = generate_result("1009", "permtenant exist", e.message)
        except UserNotExistError as e:
            result = generate_result("1008", "user not exist", e.message)
        except Tenants.DoesNotExist as e:
            logger.exception(e)
            result = generate_result("1001", "tenant not exist",
                                     "租户{}不存在".format(tenant_name))
        except Exception as e:
            logger.exception(e)
            result = generate_result("9999", "system error", "系统异常")
        return Response(result)
Beispiel #5
0
 def get(self, request, tenant_name, user_name, *args, **kwargs):
     """
     查询某团队下的某个用户
     ---
     parameters:
         - name: tenant_name
           description: 团队名
           required: true
           type: string
           paramType: path
         - name: user_name
           description: 用户名
           required: true
           type: string
           paramType: path
     """
     try:
         user = user_service.get_user_by_username(user_name)
         tenant = tenant_service.get_tenant(tenant_name)
         perm_tenants = PermRelTenant.objects.filter(tenant_id=tenant.ID,
                                                     user_id=user.pk)
         if not perm_tenants:
             result = generate_result(
                 "1010", "tenant user not exist",
                 "租户{0}下不存在用户{1}".format(tenant_name, user_name))
         else:
             code = "0000"
             msg = "success"
             list = []
             res = {
                 "tenant_id": tenant.tenant_id,
                 "tenant_name": tenant.tenant_name,
                 "user_id": user.user_id,
                 "nick_name": user.nick_name,
                 "email": user.email,
                 "phone": user.phone
             }
             list.append(res)
             result = generate_result(code, msg, "查询成功", list=list)
     except UserNotExistError as e:
         result = generate_result("1008", "user not exist", e.message)
     except Tenants.DoesNotExist as e:
         logger.exception(e)
         result = generate_result("1001", "tenant not exist",
                                  "租户{}不存在".format(tenant_name))
     except Exception as e:
         logger.exception(e)
         result = generate_result("9999", "system error", "系统异常")
     return Response(result)
Beispiel #6
0
    def get(self, request, tenant_name, *args, **kwargs):
        """
        获取某团队下的所有用户
        ---
        parameters:
            - name: tenant_name
              description: 租户名称
              required: true
              type: string
              paramType: path

        """
        result = {}
        try:
            tenant = tenant_service.get_tenant(tenant_name)
            if not tenant:
                result = generate_result("1001", "tenant not exist", "租户{}不存在".format(tenant_name))
                return Response(result)
            user_list = tenant_service.get_tenant_users(tenant_name)
            list = []
            for user in user_list:
                result_map = dict()
                result_map["user_id"] = user.user_id
                result_map["email"] = user.email
                result_map["nick_name"] = user.nick_name
                tenant_list = user_service.get_user_tenants(user.user_id)
                result_map["tenants"] = tenant_list
                list.append(result_map)

            result = generate_result(
                "0000", "success", "查询成功", list=list
            )
        except Tenants.DoesNotExist as e:
            logger.exception(e)
            result = generate_result("1001", "tenant not exist", "租户{}不存在".format(tenant_name))
        except Exception as e:
            logger.exception(e)
            result = generate_result("9999", "system error", "系统异常")
        return Response(result)