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 {