diff --git a/internal/domain/access.go b/internal/domain/access.go index e6d94764..e9df61d2 100644 --- a/internal/domain/access.go +++ b/internal/domain/access.go @@ -12,7 +12,6 @@ type Access struct { Name string `json:"name" db:"name"` Provider string `json:"provider" db:"provider"` Config string `json:"config" db:"config"` - Usage string `json:"usage" db:"usage"` DeletedAt *time.Time `json:"deleted" db:"deleted"` } diff --git a/internal/repository/access.go b/internal/repository/access.go index a8370fd8..0bfeaea9 100644 --- a/internal/repository/access.go +++ b/internal/repository/access.go @@ -48,7 +48,6 @@ func (r *AccessRepository) castRecordToModel(record *core.Record) (*domain.Acces Name: record.GetString("name"), Provider: record.GetString("provider"), Config: record.GetString("config"), - Usage: record.GetString("usage"), } return access, nil } diff --git a/ui/src/components/provider/AccessProviderSelect.tsx b/ui/src/components/provider/AccessProviderSelect.tsx index ffba5c8a..04b859ac 100644 --- a/ui/src/components/provider/AccessProviderSelect.tsx +++ b/ui/src/components/provider/AccessProviderSelect.tsx @@ -29,22 +29,16 @@ const AccessProviderSelect = (props: AccessProviderSelectProps) => {
- {provider?.usage === ACCESS_USAGES.APPLY && ( + {provider?.usages?.includes(ACCESS_USAGES.APPLY) && ( <> {t("access.props.provider.usage.dns")} )} - {provider?.usage === ACCESS_USAGES.DEPLOY && ( + {provider?.usages?.includes(ACCESS_USAGES.DEPLOY) && ( <> {t("access.props.provider.usage.host")} )} - {provider?.usage === ACCESS_USAGES.ALL && ( - <> - {t("access.props.provider.usage.dns")} - {t("access.props.provider.usage.host")} - - )}
); diff --git a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx index bfb5f420..5a0472dd 100644 --- a/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx +++ b/ui/src/components/workflow/node/ApplyNodeConfigForm.tsx @@ -279,7 +279,7 @@ const ApplyNodeConfigForm = forwardRef { const provider = accessProvidersMap.get(record.provider); - if (ACCESS_USAGES.ALL === provider?.usage || ACCESS_USAGES.APPLY === provider?.usage) { + if (provider?.usages?.includes(ACCESS_USAGES.APPLY)) { formInst.setFieldValue("providerAccessId", record.id); } }} @@ -292,7 +292,7 @@ const ApplyNodeConfigForm = forwardRef { const provider = accessProvidersMap.get(record.provider); - return ACCESS_USAGES.ALL === provider?.usage || ACCESS_USAGES.APPLY === provider?.usage; + return !!provider?.usages?.includes(ACCESS_USAGES.APPLY); }} onChange={handleProviderAccessSelect} /> diff --git a/ui/src/components/workflow/node/DeployNodeConfigForm.tsx b/ui/src/components/workflow/node/DeployNodeConfigForm.tsx index c5518057..78d1b99d 100644 --- a/ui/src/components/workflow/node/DeployNodeConfigForm.tsx +++ b/ui/src/components/workflow/node/DeployNodeConfigForm.tsx @@ -301,7 +301,7 @@ const DeployNodeConfigForm = forwardRef { const provider = accessProvidersMap.get(record.provider); - if (ACCESS_USAGES.ALL === provider?.usage || ACCESS_USAGES.DEPLOY === provider?.usage) { + if (provider?.usages?.includes(ACCESS_USAGES.DEPLOY)) { formInst.setFieldValue("providerAccessId", record.id); } }} @@ -318,7 +318,7 @@ const DeployNodeConfigForm = forwardRef diff --git a/ui/src/domain/provider.ts b/ui/src/domain/provider.ts index 7a6df3f2..b4504694 100644 --- a/ui/src/domain/provider.ts +++ b/ui/src/domain/provider.ts @@ -37,7 +37,6 @@ export const ACCESS_PROVIDERS = Object.freeze({ export type AccessProviderType = (typeof ACCESS_PROVIDERS)[keyof typeof ACCESS_PROVIDERS]; export const ACCESS_USAGES = Object.freeze({ - ALL: "all", APPLY: "apply", DEPLOY: "deploy", } as const); @@ -48,7 +47,7 @@ export type AccessProvider = { type: AccessProviderType; name: string; icon: string; - usage: AccessUsageType; + usages: AccessUsageType[]; }; export const accessProvidersMap: Map = new Map( @@ -57,41 +56,41 @@ export const accessProvidersMap: Map [ - type, + [ACCESS_PROVIDERS.LOCAL, "provider.local", "/imgs/providers/local.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.SSH, "provider.ssh", "/imgs/providers/ssh.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.WEBHOOK, "provider.webhook", "/imgs/providers/webhook.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.KUBERNETES, "provider.kubernetes", "/imgs/providers/kubernetes.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.ALIYUN, "provider.aliyun", "/imgs/providers/aliyun.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.TENCENTCLOUD, "provider.tencentcloud", "/imgs/providers/tencentcloud.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.HUAWEICLOUD, "provider.huaweicloud", "/imgs/providers/huaweicloud.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.VOLCENGINE, "provider.volcengine", "/imgs/providers/volcengine.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.AWS, "provider.aws", "/imgs/providers/aws.svg", [ACCESS_USAGES.APPLY, ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.BAIDUCLOUD, "provider.baiducloud", "/imgs/providers/baiducloud.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.QINIU, "provider.qiniu", "/imgs/providers/qiniu.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.DOGECLOUD, "provider.dogecloud", "/imgs/providers/dogecloud.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.BYTEPLUS, "provider.byteplus", "/imgs/providers/byteplus.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.UCLOUD, "provider.ucloud", "/imgs/providers/ucloud.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.BAOTAPANEL, "provider.baotapanel", "/imgs/providers/baotapanel.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.EDGIO, "provider.edgio", "/imgs/providers/edgio.svg", [ACCESS_USAGES.DEPLOY]], + [ACCESS_PROVIDERS.AZURE, "provider.azure", "/imgs/providers/azure.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.CLOUDFLARE, "provider.cloudflare", "/imgs/providers/cloudflare.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.CLOUDNS, "provider.cloudns", "/imgs/providers/cloudns.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.GNAME, "provider.gname", "/imgs/providers/gname.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.GODADDY, "provider.godaddy", "/imgs/providers/godaddy.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.NAMEDOTCOM, "provider.namedotcom", "/imgs/providers/namedotcom.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.NAMESILO, "provider.namesilo", "/imgs/providers/namesilo.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.NS1, "provider.ns1", "/imgs/providers/ns1.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.RAINYUN, "provider.rainyun", "/imgs/providers/rainyun.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.WESTCN, "provider.westcn", "/imgs/providers/westcn.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.POWERDNS, "provider.powerdns", "/imgs/providers/powerdns.svg", [ACCESS_USAGES.APPLY]], + [ACCESS_PROVIDERS.ACMEHTTPREQ, "provider.acmehttpreq", "/imgs/providers/acmehttpreq.svg", [ACCESS_USAGES.APPLY]], + ].map((e) => [ + e[0] as string, { - type: type as AccessProviderType, - name: name, - icon: icon, - usage: usage as AccessUsageType, + type: e[0] as AccessProviderType, + name: e[1] as string, + icon: e[2] as string, + usages: e[3] as AccessUsageType[], }, ]) );