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
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
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
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()
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
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
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)
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
def get_team_by_team_id(self, team_id): team = team_repo.get_team_by_team_id(team_id=team_id) return team
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)