Ejemplo n.º 1
0
 def v1_to_v2(self, old_templete, region=""):
     """旧版本模板转换为新版本数据"""
     new_templet = dict()
     # 服务组的基础信息
     new_templet["group_version"] = old_templete["group_version"]
     new_templet["group_name"] = old_templete["group_name"]
     new_templet["group_key"] = old_templete["group_key"]
     new_templet["template_version"] = "v2"
     new_templet["describe"] = old_templete["info"]
     new_templet["pic"] = old_templete["pic"]
     # process apps
     apps = old_templete["apps"]
     new_apps = []
     for app in apps:
         new_apps.append(self.__v1_2_v2_translate_app(app, region))
     new_templet["apps"] = new_apps
     new_templet["share_user"] = 0
     new_templet["share_team"] = ""
     if new_apps:
         new_templet["share_user"] = new_apps[0]["creater"]
         tenant_id = new_apps[0]["tenant_id"]
         team = team_repo.get_team_by_team_id(tenant_id)
         if team:
             new_templet["share_team"] = team.tenant_name
     return new_templet
Ejemplo n.º 2
0
 def get_team_by_team_id(self, team_id):
     team = team_repo.get_team_by_team_id(team_id=team_id)
     if team is None:
         raise Tenants.DoesNotExist()
     user = user_repo.get_by_user_id(team.creater)
     team.creater = user.nick_name
     return team
Ejemplo n.º 3
0
 def get_tenant_by_group_id(self, group_id):
     service_group = group_repo.get_group_by_id(group_id)
     if not service_group:
         return None
     try:
         tenant = team_repo.get_team_by_team_id(service_group.tenant_id)
         return tenant
     except Exception:
         return None
Ejemplo n.º 4
0
    def delete_team_region(self, team_id, region_name):
        # check team
        tenant = team_repo.get_team_by_team_id(team_id)
        # check region
        region_services.get_by_region_name(region_name)

        tenant_region = region_repo.get_team_region_by_tenant_and_region(team_id, region_name)
        if not tenant_region:
            raise ErrTenantRegionNotFound()

        region_api.delete_tenant(region_name, tenant.tenant_name)

        tenant_region.delete()
Ejemplo n.º 5
0
 def get_group_services_by_id(self, group_id):
     service_group = group_repo.get_group_by_id(group_id)
     if not service_group:
         return None, None
     tenant = team_repo.get_team_by_team_id(service_group.tenant_id)
     services = group_service_relation_repo.get_services_by_group(group_id)
     if not services:
         return tenant, []
     service_ids = [service.service_id for service in services]
     cp_service_ids = copy.copy(service_ids)
     for service_id in cp_service_ids:
         service_obj = service_repo.get_service_by_service_id(service_id)
         if service_obj:
             if service_obj.service_source == "third_party":
                 service_ids.remove(service_id)
     return tenant, service_ids
Ejemplo n.º 6
0
    def get_tenant_roles(self, tenant_id, page=None, page_size=None):
        """获取一个团队中的所有角色和角色对应的权限信息"""
        tenant = team_repo.get_team_by_team_id(tenant_id)
        if tenant is None:
            raise Tenants.DoesNotExist()

        role_list = role_repo.get_tenant_role_by_tenant_id(tenant_id=tenant.pk, allow_owner=True)
        if page is not None and page_size is None:
            paginator = Paginator(role_list, page_size)
            try:
                role_list = paginator.page(page).object_list
            except PageNotAnInteger:
                page = 1
                role_list = paginator.page(1).object_list
            except EmptyPage:
                page = paginator.num_pages
                role_list = paginator.page(paginator.num_pages).object_list
        return role_list
Ejemplo n.º 7
0
 def get(self, request, enterprise_id, *args, **kwargs):
     code = 200
     new_join_team = []
     request_join_team = []
     try:
         tenants = enterprise_repo.get_enterprise_user_teams(enterprise_id, request.user.user_id)
         join_tenants = enterprise_repo.get_enterprise_user_join_teams(enterprise_id, request.user.user_id)
         active_tenants = enterprise_repo.get_enterprise_user_active_teams(enterprise_id, request.user.user_id)
         request_tenants = enterprise_repo.get_enterprise_user_request_join(enterprise_id, request.user.user_id)
         if tenants:
             for tenant in tenants[:3]:
                 region_name_list = []
                 region_name_list = team_repo.get_team_region_names(tenant.tenant_id)
                 user_role_list = user_kind_role_service.get_user_roles(
                     kind="team", kind_id=tenant.tenant_id, user=request.user)
                 roles = [x["role_name"] for x in user_role_list["roles"]]
                 if tenant.creater == request.user.user_id:
                     roles.append("owner")
                 owner = user_repo.get_by_user_id(tenant.creater)
                 if len(region_name_list) > 0:
                     team_item = {
                         "team_name": tenant.tenant_name,
                         "team_alias": tenant.tenant_alias,
                         "team_id": tenant.tenant_id,
                         "create_time": tenant.create_time,
                         "region": region_name_list[0],  # first region is default
                         "region_list": region_name_list,
                         "enterprise_id": tenant.enterprise_id,
                         "owner": tenant.creater,
                         "owner_name": (owner.get_name() if owner else None),
                         "roles": roles,
                         "is_pass": True,
                     }
                     new_join_team.append(team_item)
         if join_tenants:
             for tenant in join_tenants:
                 region_name_list = team_repo.get_team_region_names(tenant.team_id)
                 tenant_info = team_repo.get_team_by_team_id(tenant.team_id)
                 try:
                     user = user_repo.get_user_by_user_id(tenant_info.creater)
                     nick_name = user.nick_name
                 except UserNotExistError:
                     nick_name = None
                 if len(region_name_list) > 0:
                     team_item = {
                         "team_name": tenant.team_name,
                         "team_alias": tenant.team_alias,
                         "team_id": tenant.team_id,
                         "create_time": tenant_info.create_time,
                         "region": region_name_list[0],
                         "region_list": region_name_list,
                         "enterprise_id": tenant_info.enterprise_id,
                         "owner": tenant_info.creater,
                         "owner_name": nick_name,
                         "role": None,
                         "is_pass": tenant.is_pass,
                     }
                     new_join_team.append(team_item)
         if request_tenants:
             for request_tenant in request_tenants:
                 region_name_list = team_repo.get_team_region_names(request_tenant.team_id)
                 tenant_info = team_repo.get_team_by_team_id(request_tenant.team_id)
                 try:
                     user = user_repo.get_user_by_user_id(tenant_info.creater)
                     nick_name = user.nick_name
                 except UserNotExistError:
                     nick_name = None
                 if len(region_name_list) > 0:
                     team_item = {
                         "team_name": request_tenant.team_name,
                         "team_alias": request_tenant.team_alias,
                         "team_id": request_tenant.team_id,
                         "apply_time": request_tenant.apply_time,
                         "user_id": request_tenant.user_id,
                         "user_name": request_tenant.user_name,
                         "region": region_name_list[0],
                         "region_list": region_name_list,
                         "enterprise_id": enterprise_id,
                         "owner": tenant_info.creater,
                         "owner_name": nick_name,
                         "role": "viewer",
                         "is_pass": request_tenant.is_pass,
                     }
                     request_join_team.append(team_item)
         data = {
             "active_teams": active_tenants,
             "new_join_team": new_join_team,
             "request_join_team": request_join_team,
         }
         result = general_message(200, "success", None, bean=data)
     except Exception as e:
         logger.exception(e)
         code = 400
         result = general_message(code, "failed", "请求失败")
     return Response(result, status=code)
Ejemplo n.º 8
0
 def get_team_by_team_id(self, team_id):
     team = team_repo.get_team_by_team_id(team_id=team_id)
     if team:
         user = user_repo.get_by_user_id(team.creater)
         team.creater_name = user.get_name()
     return team
Ejemplo n.º 9
0
 def get_team_by_team_id(self, team_id):
     team = team_repo.get_team_by_team_id(team_id=team_id)
     return team
Ejemplo n.º 10
0
 def get(self, request, enterprise_id, *args, **kwargs):
     code = 200
     new_join_team = []
     request_join_team = []
     try:
         tenants = enterprise_repo.get_enterprise_user_teams(
             enterprise_id, request.user.user_id)
         join_tenants = enterprise_repo.get_enterprise_user_join_teams(
             enterprise_id, request.user.user_id)
         active_tenants = enterprise_repo.get_enterprise_user_active_teams(
             enterprise_id, request.user.user_id)
         request_tenants = enterprise_repo.get_enterprise_user_request_join(
             enterprise_id, request.user.user_id)
         if tenants:
             for tenant in tenants[:3]:
                 region_name_list = []
                 user = user_repo.get_user_by_user_id(tenant.creater)
                 region_list = team_repo.get_team_regions(tenant.tenant_id)
                 if region_list:
                     region_name_list = region_list.values_list(
                         "region_name", flat=True)
                 try:
                     role = user_role_repo.get_role_names(
                         user.user_id, tenant.tenant_id)
                 except UserRoleNotFoundException:
                     if tenant.creater == user.user_id:
                         role = "owner"
                     else:
                         role = None
                 new_join_team.append({
                     "team_name": tenant.tenant_name,
                     "team_alias": tenant.tenant_alias,
                     "team_id": tenant.tenant_id,
                     "create_time": tenant.create_time,
                     "region": tenant.region,
                     "region_list": region_name_list,
                     "enterprise_id": tenant.enterprise_id,
                     "owner": tenant.creater,
                     "owner_name": user.nick_name,
                     "role": role,
                     "is_pass": True,
                 })
         if join_tenants:
             for tenant in join_tenants:
                 region_name_list = []
                 region_list = team_repo.get_team_regions(tenant.team_id)
                 if region_list:
                     region_name_list = region_list.values_list(
                         "region_name", flat=True)
                 tenant_info = team_repo.get_team_by_team_id(tenant.team_id)
                 try:
                     user = user_repo.get_user_by_user_id(
                         tenant_info.creater)
                     nick_name = user.nick_name
                 except UserNotExistError:
                     nick_name = None
                 new_join_team.append({
                     "team_name": tenant.team_name,
                     "team_alias": tenant.team_alias,
                     "team_id": tenant.team_id,
                     "create_time": tenant_info.create_time,
                     "region": tenant_info.region,
                     "region_list": region_name_list,
                     "enterprise_id": tenant_info.enterprise_id,
                     "owner": tenant_info.creater,
                     "owner_name": nick_name,
                     "role": None,
                     "is_pass": tenant.is_pass,
                 })
         if request_tenants:
             for request_tenant in request_tenants:
                 region_name_list = []
                 region_list = team_repo.get_team_regions(
                     request_tenant.team_id)
                 if region_list:
                     region_name_list = region_list.values_list(
                         "region_name", flat=True)
                 tenant_info = team_repo.get_team_by_team_id(
                     request_tenant.team_id)
                 try:
                     user = user_repo.get_user_by_user_id(
                         tenant_info.creater)
                     nick_name = user.nick_name
                 except UserNotExistError:
                     nick_name = None
                 request_join_team.append({
                     "team_name":
                     request_tenant.team_name,
                     "team_alias":
                     request_tenant.team_alias,
                     "team_id":
                     request_tenant.team_id,
                     "apply_time":
                     request_tenant.apply_time,
                     "user_id":
                     request_tenant.user_id,
                     "user_name":
                     request_tenant.user_name,
                     "region":
                     team_repo.get_team_by_team_id(
                         request_tenant.team_id).region,
                     "region_list":
                     region_name_list,
                     "enterprise_id":
                     enterprise_id,
                     "owner":
                     tenant_info.creater,
                     "owner_name":
                     nick_name,
                     "role":
                     "viewer",
                     "is_pass":
                     request_tenant.is_pass,
                 })
         data = {
             "active_teams": active_tenants,
             "new_join_team": new_join_team,
             "request_join_team": request_join_team,
         }
         result = general_message(200, "success", None, bean=data)
     except Exception as e:
         logger.exception(e)
         code = 400
         result = general_message(code, "failed", "请求失败")
     return Response(result, status=code)