Exemplo n.º 1
0
    def get(self, request, *args, **kwargs):
        """
        获取企业下用户信息列表
        """
        try:
            enterprise_id = request.GET.get("enterprise_id", None)
            page_num = int(request.GET.get("page_num", 1))
            page_size = int(request.GET.get("page_size", 5))
            user_name = request.GET.get("user_name", None)
            if not enterprise_id:
                enter = console_enterprise_service.get_enterprise_by_id(enterprise_id=self.user.enterprise_id)
                enterprise_id = enter.enterprise_id
            enter = console_enterprise_service.get_enterprise_by_id(enterprise_id=enterprise_id)
            if user_name:
                euser = user_services.get_user_by_user_name(enterprise_id, user_name)
                list = []
                if not euser:
                    result = general_message("0000", "success", "查询成功", list=list, total=0)
                    return Response(result)
                result_map = dict()
                result_map["user_id"] = euser.user_id
                result_map["email"] = euser.email
                result_map["nick_name"] = euser.nick_name
                result_map["phone"] = euser.phone if euser.phone else "暂无"
                result_map["create_time"] = time_to_str(euser.create_time, "%Y-%m-%d %H:%M:%S")
                tenant_list = user_services.get_user_tenants(euser.user_id)
                result_map["tenants"] = tenant_list
                result_map["enterprise_alias"] = enter.enterprise_alias
                list.append(result_map)
                result = general_message("0000", "success", "查询成功", list=list, total=1)
                return Response(result)
            user_list = user_repo.get_user_by_enterprise_id(enterprise_id=enterprise_id)
            for user1 in user_list:
                if user1.nick_name == self.user.nick_name:
                    user_list.delete(user1)
            user_paginator = JuncheePaginator(user_list, int(page_size))
            users = user_paginator.page(int(page_num))
            list = []
            for user in users:
                result_map = dict()
                result_map["user_id"] = user.user_id
                result_map["email"] = user.email
                result_map["nick_name"] = user.nick_name
                result_map["phone"] = user.phone if user.phone else "暂无"
                result_map["create_time"] = time_to_str(user.create_time, "%Y-%m-%d %H:%M:%S")
                tenant_list = user_services.get_user_tenants(user.user_id)
                result_map["tenants"] = tenant_list
                result_map["enterprise_alias"] = enter.enterprise_alias
                list.append(result_map)

            result = general_message("0000", "success", "查询成功", list=list, total=user_paginator.count)

        except Exception as e:
            logger.debug(e)
            result = error_message()
        return Response(result)
Exemplo n.º 2
0
 def get(self, req, eid):
     ent = enterprise_services.get_enterprise_by_id(eid)
     if ent is None:
         return Response({"msg": "企业不存在"}, status=status.HTTP_404_NOT_FOUND)
     serializer = EnterpriseInfoSerializer(data=ent.to_dict())
     serializer.is_valid(raise_exception=True)
     return Response(serializer.data, status=status.HTTP_200_OK)
Exemplo n.º 3
0
    def get(self, req, eid):
        data = {
            "enterprise_id": eid,
            "used_cpu": 0,
            "used_memory": 0,
            "used_disk": 0
        }
        if not req.user.is_administrator:
            raise ServiceHandleException(status_code=401,
                                         error_code=401,
                                         msg="Permission denied")
        ent = enterprise_services.get_enterprise_by_id(eid)
        if ent is None:
            return Response({"msg": "企业不存在"}, status=status.HTTP_404_NOT_FOUND)
        regions = region_services.get_regions_by_enterprise_id(eid)
        for region in regions:
            try:
                res, body = region_api.get_region_resources(
                    eid, region.region_name)
                rst = body.get("bean")
                if res.get("status") == 200 and rst:
                    data["used_cpu"] += rst.get("req_cpu", 0)
                    data["used_memory"] += rst.get("req_mem", 0)
                    data["used_disk"] += rst.get("req_disk", 0)
            except ServiceHandleException:
                continue

        serializer = EnterpriseSourceSerializer(data=data)
        serializer.is_valid(raise_exception=True)
        return Response(serializer.data, status=status.HTTP_200_OK)
Exemplo n.º 4
0
 def initial(self, request, *args, **kwargs):
     request.user.is_administrator = False
     if hasattr(request.user, "enterprise_id"):
         self.enterprise = enterprise_services.get_enterprise_by_id(request.user.enterprise_id)
     if not self.enterprise:
         raise ErrEnterpriseNotFound
     if self.enterprise.ID == 1:
         request.user.is_administrator = True
     self.user = request.user
     self.is_team_owner = False
     team_id = kwargs.get("team_id")
     if team_id:
         self.team = team_services.get_team_by_team_id_and_eid(team_id, self.enterprise.enterprise_id)
     if not self.team:
         self.team = team_services.get_enterprise_tenant_by_tenant_name(self.enterprise.enterprise_id, team_id)
     if not self.team:
         raise ServiceHandleException(msg_show="团队不存在", msg="no found team", status_code=404)
     self.team_regions = region_services.get_team_usable_regions(self.team.tenant_name, self.enterprise.enterprise_id)
     if self.user.user_id == self.team.creater:
         self.is_team_owner = True
     self.enterprise = TenantEnterprise.objects.filter(enterprise_id=self.team.enterprise_id).first()
     self.is_enterprise_admin = False
     enterprise_user_perms = EnterpriseUserPerm.objects.filter(
         enterprise_id=self.team.enterprise_id, user_id=self.user.user_id).first()
     if enterprise_user_perms:
         self.is_enterprise_admin = True
     self.get_perms()
     self.check_perms(request, *args, **kwargs)
Exemplo n.º 5
0
 def initial(self, request, *args, **kwargs):
     super(BaseOpenAPIView, self).initial(request, *args, **kwargs)
     request.user.is_administrator = False
     if hasattr(request.user, "enterprise_id"):
         self.enterprise = enterprise_services.get_enterprise_by_id(
             request.user.enterprise_id)
         if self.enterprise.ID == 1:
             request.user.is_administrator = True
Exemplo n.º 6
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)
Exemplo n.º 7
0
    def put(self, req, eid):
        serializer = UpdAppStoreInfoReqSerializer(data=req.data)
        serializer.is_valid(raise_exception=True)

        if enterprise_services.get_enterprise_by_id(eid) is None:
            raise exceptions.NotFound({"msg": "企业'{}'不存在".format(eid)})

        try:
            res = enterprise_services.update_appstore_info(eid, req.data)
        except TenantEnterpriseToken:
            raise exceptions.NotFound({"msg": "应用市场信息不存在 {}".format(eid)})
        serializer = AppStoreInfoSerializer(res)
        return Response(serializer.data, status=status.HTTP_200_OK)
Exemplo n.º 8
0
 def get(self, req, *args, **kwargs):
     key = req.GET.get("key", None)
     ent = enterprise_services.get_enterprise_by_id(
         self.enterprise.enterprise_id)
     if ent is None:
         return Response({"msg": "企业不存在"}, status=status.HTTP_404_NOT_FOUND)
     ent_config = EnterpriseConfigService(
         self.enterprise.enterprise_id).initialization_or_get_config
     if key is None:
         serializer = EnterpriseConfigSeralizer(data=ent_config)
     elif key in list(ent_config.keys()):
         serializer = EnterpriseConfigSeralizer(data={key: ent_config[key]})
     else:
         raise ServiceHandleException(
             status_code=404,
             msg="no found config key {}".format(key),
             msg_show="企业没有 {} 配置".format(key))
     serializer.is_valid(raise_exception=True)
     return Response(serializer.data, status=status.HTTP_200_OK)
Exemplo n.º 9
0
 def get(self, request, *args, **kwargs):
     """
     获取企业可加入的团队列表
     """
     try:
         enterprise_id = request.GET.get("enterprise_id", None)
         page_num = int(request.GET.get("page_num", 1))
         page_size = int(request.GET.get("page_size", 5))
         if not enterprise_id:
             enter = enterprise_services.get_enterprise_by_id(
                 enterprise_id=self.user.enterprise_id)
             enterprise_id = enter.enterprise_id
         total = 0
         t_list = []
         owner_name = None
         team_list = team_services.get_enterprise_teams(
             enterprise_id=enterprise_id)
         team_paginator = JuncheePaginator(team_list, int(page_size))
         total = team_paginator.count
         page_team = team_paginator.page(page_num)
         t_list = [{
             "enterprise_id":
             team_info.enterprise_id,
             "create_time":
             team_info.create_time,
             "team_name":
             team_info.tenant_name,
             "team_alias":
             team_info.tenant_alias,
             "owner":
             user_repo.get_user_nickname_by_id(user_id=team_info.creater)
         } for team_info in page_team]
         result = general_message(200,
                                  "success",
                                  "查询成功",
                                  list=t_list,
                                  total=total)
     except Exception as e:
         logger.exception(e)
         result = error_message(e.message)
     return Response(result, status=result["code"])
Exemplo n.º 10
0
 def initial(self, request, *args, **kwargs):
     super(BaseOpenAPIView, self).initial(request, *args, **kwargs)
     request.user.is_ = False
     if hasattr(request.user, "enterprise_id"):
         self.enterprise = enterprise_services.get_enterprise_by_id(request.user.enterprise_id)
     if not self.enterprise:
         raise ErrEnterpriseNotFound
     self.region_name = kwargs.get("region_name")
     if not self.region_name:
         self.region_name = kwargs.get("region_id")
     if self.region_name:
         self.region = region_services.get_enterprise_region_by_region_name(
             enterprise_id=self.enterprise.enterprise_id, region_name=self.region_name)
         if not self.region:
             self.region = region_repo.get_region_by_id(self.enterprise.enterprise_id, self.region_name)
     # Temporary logic
     if self.enterprise.ID == 1:
         request.user.is_administrator = True
     self.user = request.user
     self.get_perms()
     self.check_perms(request, *args, **kwargs)
Exemplo n.º 11
0
 def _update_entalias(self, eid, alias):
     ent = enterprise_services.get_enterprise_by_id(eid)
     if ent is None:
         raise TenantEnterprise.DoesNotExist()
     ent.enterprise_alias = alias
     ent.save()