示例#1
0
    def get(self, request, tenant_name, *args, **kwargs):
        """
        获取团队可用的数据中心
        ---
        parameters:
            - name: tenant_name
              description: 团队名
              required: true
              type: string
              paramType: path
        """
        region_name = None
        try:
            team = console_team_service.get_tenant_by_tenant_name(tenant_name)
            if not team:
                return Response(
                    generate_result("0404", "team not found",
                                    "团队{0}不存在".format(tenant_name)))

            region_list = console_region_service.get_region_list_by_team_name(
                request, tenant_name)
            if region_list:
                region_name = region_list[0]["team_region_name"]
            else:
                regions = region_service.get_all_regions()
                if regions:
                    region_name = regions[0].region_name
            result = generate_result("0000",
                                     "success",
                                     "查询成功",
                                     bean={"region_name": region_name})
        except Exception as e:
            logger.exception(e)
            result = generate_result("9999", "system error", "系统异常")
        return Response(result)
    def get(self, request, *args, **kwargs):
        """
        查询我的详情
        ---
        """
        code = 200
        user = self.user
        tenants = team_services.get_current_user_tenants(user_id=user.user_id)
        user_detail = dict()
        user_detail["user_id"] = user.user_id
        user_detail["user_name"] = user.nick_name
        user_detail["email"] = user.email
        user_detail["enterprise_id"] = user.enterprise_id
        user_detail["phone"] = user.phone
        user_detail["git_user_id"] = user.git_user_id
        user_detail["is_sys_admin"] = user.is_sys_admin
        enterprise = enterprise_services.get_enterprise_by_enterprise_id(
            user.enterprise_id)
        user_detail["is_enterprise_active"] = enterprise.is_active
        user_detail["is_enterprise_admin"] = self.is_enterprise_admin
        tenant_list = list()
        for tenant in tenants:
            tenant_info = dict()
            is_team_owner = False
            team_region_list = region_services.get_region_list_by_team_name(
                team_name=tenant.tenant_name)
            tenant_info["team_id"] = tenant.ID
            tenant_info["team_name"] = tenant.tenant_name
            tenant_info["team_alias"] = tenant.tenant_alias
            tenant_info["limit_memory"] = tenant.limit_memory
            tenant_info["pay_level"] = tenant.pay_level
            tenant_info["region"] = team_region_list
            tenant_info["creater"] = tenant.creater
            tenant_info["create_time"] = tenant.create_time

            if tenant.creater == user.user_id:
                is_team_owner = True
            role_list = user_kind_role_service.get_user_roles(
                kind="team", kind_id=tenant.tenant_id, user=user)
            tenant_info["role_name_list"] = role_list["roles"]
            perms = user_kind_perm_service.get_user_perms(
                kind="team",
                kind_id=tenant.tenant_id,
                user=user,
                is_owner=is_team_owner,
                is_ent_admin=self.is_enterprise_admin)
            tenant_info["tenant_actions"] = perms["permissions"]
            tenant_info["is_team_owner"] = is_team_owner
            tenant_list.append(tenant_info)
        user_detail["teams"] = tenant_list
        oauth_services = oauth_user_repo.get_user_oauth_services_info(
            eid=request.user.enterprise_id, user_id=request.user.user_id)
        user_detail["oauth_services"] = oauth_services
        result = general_message(code,
                                 "Obtain my details to be successful.",
                                 "获取我的详情成功",
                                 bean=user_detail)
        return Response(result, status=code)
示例#3
0
    def get(self, request, team_name, *args, **kwargs):
        """
        获取团队详情
        ---
        parameters:
            - name: team_name
              description: team name
              required: true
              type: string
              paramType: path
        """
        try:

            tenant = team_services.get_tenant_by_tenant_name(team_name)
            if not tenant:
                return Response(general_message(404, "team not exist", "团队{0}不存在".format(team_name)), status=404)
            user_team_perm = team_services.get_user_perms_in_permtenant(self.user.user_id, team_name)
            tenant_info = dict()
            team_region_list = region_services.get_region_list_by_team_name(request=request,
                                                                            team_name=team_name)
            p = PermActions()
            tenant_info["team_id"] = tenant.ID
            tenant_info["team_name"] = tenant.tenant_name
            tenant_info["team_alias"] = tenant.tenant_alias
            tenant_info["limit_memory"] = tenant.limit_memory
            tenant_info["pay_level"] = tenant.pay_level
            tenant_info["region"] = team_region_list
            tenant_info["creater"] = tenant.creater
            tenant_info["create_time"] = tenant.create_time

            if not user_team_perm:
                if not self.user.is_sys_admin and team_name != "grdemo":
                    return Response(general_message(403, "you right to see this team", "您无权查看此团队"), 403)
            else:
                perms_list = team_services.get_user_perm_identitys_in_permtenant(user_id=self.user.user_id,
                                                                                 tenant_name=tenant.tenant_name)
                role_name_list = team_services.get_user_perm_role_in_permtenant(user_id=self.user.user_id,
                                                                                tenant_name=tenant.tenant_name)

                role_perms_tuple = team_services.get_user_perm_in_tenant(user_id=self.user.user_id,
                                                                         tenant_name=tenant.tenant_name)

                tenant_actions = ()
                tenant_info["identity"] = perms_list + role_name_list
                if perms_list:
                    final_identity = get_highest_identity(perms_list)
                    perms = p.keys('tenant_{0}_actions'.format(final_identity))
                    tenant_actions += perms
                tenant_actions += role_perms_tuple
                tenant_info["tenant_actions"] = tuple(set(tenant_actions))

            return Response(general_message(200, "success", "查询成功", bean=tenant_info), status=200)

        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
            return Response(result, status=result["code"])
示例#4
0
 def get(self, request, *args, **kwargs):
     """
     查询我的详情
     ---
     """
     try:
         p = PermActions()
         code = 200
         user = self.user
         user.actions = UserActions()
         tenants = team_services.get_current_user_tenants(
             user_id=user.user_id)
         user_detail = dict()
         user_detail["user_id"] = user.user_id
         user_detail["user_name"] = user.nick_name
         user_detail["email"] = user.email
         user_detail["enterprise_id"] = user.enterprise_id
         user_detail["phone"] = user.phone
         user_detail["git_user_id"] = user.git_user_id
         tenant_list = list()
         for tenant in tenants:
             tenant_info = dict()
             team_region_list = region_services.get_region_list_by_team_name(
                 request=request, team_name=tenant.tenant_name)
             tenant_info["team_id"] = tenant.ID
             tenant_info["team_name"] = tenant.tenant_name
             tenant_info["team_alias"] = tenant.tenant_alias
             tenant_info["limit_memory"] = tenant.limit_memory
             tenant_info["pay_level"] = tenant.pay_level
             tenant_info["region"] = team_region_list
             tenant_info["creater"] = tenant.creater
             tenant_info["create_time"] = tenant.create_time
             perms_list = team_services.get_user_perm_identitys_in_permtenant(
                 user_id=user.user_id, tenant_name=tenant.tenant_name)
             final_identity = perms.get_highest_identity(perms_list)
             tenant_info["identity"] = final_identity
             tenant_actions = p.keys(
                 'tenant_{0}_actions'.format(final_identity))
             user.actions.set_actions('tenant', tenant_actions)
             tenant_info["tenant_actions"] = user.actions.tenant_actions
             tenant_list.append(tenant_info)
         user_detail["teams"] = tenant_list
         result = general_message(code,
                                  "Obtain my details to be successful.",
                                  "获取我的详情成功",
                                  bean=user_detail)
     except Exception as e:
         code = 500
         logger.exception(e)
         result = error_message(e.message)
     return Response(result, status=code)
示例#5
0
 def get(self, request, team_name, *args, **kwargs):
     """
     获取团队数据中心(简表)
     ---
     parameters:
         - name: team_name
           description: 当前团队名字
           required: true
           type: string
           paramType: path
     """
     try:
         code = 200
         region_name_list = region_services.get_region_list_by_team_name(team_name=team_name)
         result = general_message(code, "query the data center is successful.", "数据中心获取成功", list=region_name_list)
     except Exception as e:
         code = 500
         logger.exception(e)
         result = error_message(e.message)
     return Response(result, status=code)
    def get(self, request, *args, **kwargs):
        """
        查询我的详情
        ---
        """
        try:
            p = PermActions()
            code = 200
            user = self.user
            user.actions = UserActions()
            tenants = team_services.get_current_user_tenants(
                user_id=user.user_id)
            user_detail = dict()
            user_detail["user_id"] = user.user_id
            user_detail["user_name"] = user.nick_name
            user_detail["email"] = user.email
            user_detail["enterprise_id"] = user.enterprise_id
            user_detail["phone"] = user.phone
            user_detail["git_user_id"] = user.git_user_id
            user_detail["is_sys_admin"] = user.is_sys_admin
            enterprise = enterprise_services.get_enterprise_by_enterprise_id(
                user.enterprise_id)
            user_detail["is_enterprise_active"] = enterprise.is_active
            is_user_enter_amdin = user_services.is_user_admin_in_current_enterprise(
                self.user, user.enterprise_id)
            user_detail["is_user_enter_amdin"] = is_user_enter_amdin
            tenant_list = list()
            for tenant in tenants:
                tenant_info = dict()
                team_region_list = region_services.get_region_list_by_team_name(
                    request=request, team_name=tenant.tenant_name)
                tenant_info["team_id"] = tenant.ID
                tenant_info["team_name"] = tenant.tenant_name
                tenant_info["team_alias"] = tenant.tenant_alias
                tenant_info["limit_memory"] = tenant.limit_memory
                tenant_info["pay_level"] = tenant.pay_level
                tenant_info["region"] = team_region_list
                tenant_info["creater"] = tenant.creater
                tenant_info["create_time"] = tenant.create_time
                perms_list = team_services.get_user_perm_identitys_in_permtenant(
                    user_id=user.user_id, tenant_name=tenant.tenant_name)
                perms_role_id_list = team_services.get_user_perm_role_id_in_permtenant(
                    user_id=user.user_id, tenant_name=tenant.tenant_name)

                perms_tuple = ()

                if perms_list:
                    final_identity = perms.get_highest_identity(perms_list)
                    tenant_actions = p.keys(
                        'tenant_{0}_actions'.format(final_identity))
                    perms_tuple += tenant_actions
                else:
                    final_identity = []

                role_name_list = [
                    role_repo.get_role_name_by_role_id(role_id=role_id)
                    for role_id in perms_role_id_list
                ]

                for role_id in perms_role_id_list:
                    tenant_actions = role_perm_repo.get_perm_by_role_id(
                        role_id=role_id)
                    perms_tuple += tenant_actions
                if final_identity:
                    tenant_info["role_name_list"] = [final_identity
                                                     ] + role_name_list
                else:
                    tenant_info["role_name_list"] = role_name_list
                user.actions.set_actions('tenant', tuple(set(perms_tuple)))
                tenant_info["tenant_actions"] = user.actions.tenant_actions
                tenant_list.append(tenant_info)
            user_detail["teams"] = tenant_list
            result = general_message(code,
                                     "Obtain my details to be successful.",
                                     "获取我的详情成功",
                                     bean=user_detail)
        except Exception as e:
            code = 500
            logger.exception(e)
            result = error_message(e.message)
        return Response(result, status=code)