mirror of https://github.com/certd/certd
perf: 公共cname服务支持关闭
parent
c3cfbd8474
commit
f4ae5125dc
|
@ -31,6 +31,7 @@ export class SysPrivateSettings extends BaseSettings {
|
|||
httpsProxy? = '';
|
||||
httpProxy? = '';
|
||||
dnsResultOrder? = '';
|
||||
commonCnameEnabled?: boolean = true;
|
||||
|
||||
removeSecret() {
|
||||
const clone = cloneDeep(this);
|
||||
|
|
|
@ -14,6 +14,7 @@ export type SysPrivateSetting = {
|
|||
httpProxy?: string;
|
||||
httpsProxy?: string;
|
||||
dnsResultOrder?: string;
|
||||
commonCnameEnabled?: boolean;
|
||||
};
|
||||
|
||||
export const SettingKeys = {
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
<a-form-item label="管理其他用户流水线" :name="['public', 'managerOtherUserPipeline']">
|
||||
<a-switch v-model:checked="formState.public.managerOtherUserPipeline" />
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="ICP备案号" :name="['public', 'icpNo']">
|
||||
<a-input v-model:value="formState.public.icpNo" placeholder="粤ICP备xxxxxxx号" />
|
||||
</a-form-item>
|
||||
|
@ -48,6 +49,11 @@
|
|||
</a-select>
|
||||
<div class="helper">如果选择IPv6优先,需要在docker-compose.yaml中启用ipv6</div>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item label="启用公共CNAME服务" :name="['private', 'commonCnameEnabled']">
|
||||
<a-switch v-model:checked="formState.private.commonCnameEnabled" />
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item :wrapper-col="{ offset: 8, span: 16 }">
|
||||
<a-button :loading="saveLoading" type="primary" html-type="submit">保存</a-button>
|
||||
</a-form-item>
|
||||
|
|
|
@ -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<CnameProviderEntity> {
|
|||
@InjectEntityModel(CnameProviderEntity)
|
||||
repository: Repository<CnameProviderEntity>;
|
||||
|
||||
@Inject()
|
||||
settingsService: SysSettingsService;
|
||||
|
||||
//@ts-ignore
|
||||
getRepository() {
|
||||
return this.repository;
|
||||
|
@ -85,7 +88,10 @@ export class CnameProviderService extends BaseService<CnameProviderEntity> {
|
|||
if (founds && founds.length > 0) {
|
||||
return founds[0];
|
||||
}
|
||||
if (CommonProviders.length > 0) {
|
||||
|
||||
const sysPrivateSettings = await this.settingsService.getSetting<SysPrivateSettings>(SysPrivateSettings);
|
||||
|
||||
if (sysPrivateSettings.commonCnameEnabled !== false && CommonProviders.length > 0) {
|
||||
return CommonProviders[0] as CnameProviderEntity;
|
||||
}
|
||||
return null;
|
||||
|
@ -93,8 +99,12 @@ export class CnameProviderService extends BaseService<CnameProviderEntity> {
|
|||
|
||||
async list(req: ListReq): Promise<any[]> {
|
||||
const list = await super.list(req);
|
||||
const sysPrivateSettings = await this.settingsService.getSetting<SysPrivateSettings>(SysPrivateSettings);
|
||||
|
||||
return [...list, ...CommonProviders];
|
||||
if (sysPrivateSettings.commonCnameEnabled !== false) {
|
||||
return [...list, ...CommonProviders];
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
async info(id: any, infoIgnoreProperty?: any): Promise<any | null> {
|
||||
|
|
Loading…
Reference in New Issue