diff --git a/packages/libs/lib-server/src/system/settings/service/models.ts b/packages/libs/lib-server/src/system/settings/service/models.ts index 25b21246..58a14106 100644 --- a/packages/libs/lib-server/src/system/settings/service/models.ts +++ b/packages/libs/lib-server/src/system/settings/service/models.ts @@ -31,6 +31,7 @@ export class SysPrivateSettings extends BaseSettings { httpsProxy? = ''; httpProxy? = ''; dnsResultOrder? = ''; + commonCnameEnabled?: boolean = true; removeSecret() { const clone = cloneDeep(this); diff --git a/packages/ui/certd-client/src/views/sys/settings/api.ts b/packages/ui/certd-client/src/views/sys/settings/api.ts index 6463f931..f9b91230 100644 --- a/packages/ui/certd-client/src/views/sys/settings/api.ts +++ b/packages/ui/certd-client/src/views/sys/settings/api.ts @@ -14,6 +14,7 @@ export type SysPrivateSetting = { httpProxy?: string; httpsProxy?: string; dnsResultOrder?: string; + commonCnameEnabled?: boolean; }; export const SettingKeys = { diff --git a/packages/ui/certd-client/src/views/sys/settings/index.vue b/packages/ui/certd-client/src/views/sys/settings/index.vue index aeed3b2f..cff25ef7 100644 --- a/packages/ui/certd-client/src/views/sys/settings/index.vue +++ b/packages/ui/certd-client/src/views/sys/settings/index.vue @@ -23,6 +23,7 @@ + @@ -48,6 +49,11 @@
如果选择IPv6优先,需要在docker-compose.yaml中启用ipv6
+ + + + + 保存 diff --git a/packages/ui/certd-server/src/modules/cname/service/cname-provider-service.ts b/packages/ui/certd-server/src/modules/cname/service/cname-provider-service.ts index 354bc5a1..26675e4f 100644 --- a/packages/ui/certd-server/src/modules/cname/service/cname-provider-service.ts +++ b/packages/ui/certd-server/src/modules/cname/service/cname-provider-service.ts @@ -1,7 +1,7 @@ -import { Provide, Scope, ScopeEnum } from '@midwayjs/core'; +import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core'; import { InjectEntityModel } from '@midwayjs/typeorm'; import { Repository } from 'typeorm'; -import { BaseService, ListReq, ValidateException } from '@certd/lib-server'; +import { BaseService, ListReq, SysPrivateSettings, SysSettingsService, ValidateException } from '@certd/lib-server'; import { CnameProviderEntity } from '../entity/cname-provider.js'; import { CommonProviders } from './common-provider.js'; @@ -14,6 +14,9 @@ export class CnameProviderService extends BaseService { @InjectEntityModel(CnameProviderEntity) repository: Repository; + @Inject() + settingsService: SysSettingsService; + //@ts-ignore getRepository() { return this.repository; @@ -85,7 +88,10 @@ export class CnameProviderService extends BaseService { if (founds && founds.length > 0) { return founds[0]; } - if (CommonProviders.length > 0) { + + const sysPrivateSettings = await this.settingsService.getSetting(SysPrivateSettings); + + if (sysPrivateSettings.commonCnameEnabled !== false && CommonProviders.length > 0) { return CommonProviders[0] as CnameProviderEntity; } return null; @@ -93,8 +99,12 @@ export class CnameProviderService extends BaseService { async list(req: ListReq): Promise { const list = await super.list(req); + const sysPrivateSettings = await this.settingsService.getSetting(SysPrivateSettings); - return [...list, ...CommonProviders]; + if (sysPrivateSettings.commonCnameEnabled !== false) { + return [...list, ...CommonProviders]; + } + return list; } async info(id: any, infoIgnoreProperty?: any): Promise {