mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-01-31 22:18:07 +08:00
fix: 解决新增域名校验错误的问题 (#2516)
This commit is contained in:
parent
9f35e26e22
commit
9a1ced8cdd
@ -188,6 +188,51 @@ func (w WebsiteService) CreateWebsite(create request.WebsiteCreate) (err error)
|
|||||||
primaryDomainArray := strings.Split(create.PrimaryDomain, ":")
|
primaryDomainArray := strings.Split(create.PrimaryDomain, ":")
|
||||||
primaryDomain := primaryDomainArray[0]
|
primaryDomain := primaryDomainArray[0]
|
||||||
|
|
||||||
|
var (
|
||||||
|
domains []model.WebsiteDomain
|
||||||
|
ports = make(map[int]struct{})
|
||||||
|
)
|
||||||
|
domainArray := strings.Split(create.OtherDomains, "\n")
|
||||||
|
domainArray = append(domainArray, create.PrimaryDomain)
|
||||||
|
for _, domain := range domainArray {
|
||||||
|
if domain == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
domainModel, err := getDomain(domain, defaultHttpPort)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if reflect.DeepEqual(domainModel, model.WebsiteDomain{}) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
domains = append(domains, domainModel)
|
||||||
|
if domainModel.Port != defaultHttpPort {
|
||||||
|
ports[domainModel.Port] = struct{}{}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for port := range ports {
|
||||||
|
if existPorts, _ := websiteDomainRepo.GetBy(websiteDomainRepo.WithPort(port)); len(existPorts) == 0 {
|
||||||
|
errMap := make(map[string]interface{})
|
||||||
|
errMap["port"] = port
|
||||||
|
appInstall, _ := appInstallRepo.GetFirst(appInstallRepo.WithPort(port))
|
||||||
|
if appInstall.ID > 0 {
|
||||||
|
errMap["type"] = i18n.GetMsgByKey("TYPE_APP")
|
||||||
|
errMap["name"] = appInstall.Name
|
||||||
|
return buserr.WithMap("ErrPortExist", errMap, nil)
|
||||||
|
}
|
||||||
|
runtime, _ := runtimeRepo.GetFirst(runtimeRepo.WithPort(port))
|
||||||
|
if runtime != nil {
|
||||||
|
errMap["type"] = i18n.GetMsgByKey("TYPE_RUNTIME")
|
||||||
|
errMap["name"] = runtime.Name
|
||||||
|
return buserr.WithMap("ErrPortExist", errMap, nil)
|
||||||
|
}
|
||||||
|
if common.ScanPort(create.Port) {
|
||||||
|
return buserr.WithDetail(constant.ErrPortInUsed, create.Port, nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
defaultDate, _ := time.Parse(constant.DateLayout, constant.DefaultDate)
|
defaultDate, _ := time.Parse(constant.DateLayout, constant.DefaultDate)
|
||||||
website := &model.Website{
|
website := &model.Website{
|
||||||
PrimaryDomain: primaryDomain,
|
PrimaryDomain: primaryDomain,
|
||||||
@ -303,22 +348,6 @@ func (w WebsiteService) CreateWebsite(create request.WebsiteCreate) (err error)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var domains []model.WebsiteDomain
|
|
||||||
domainArray := strings.Split(create.OtherDomains, "\n")
|
|
||||||
domainArray = append(domainArray, create.PrimaryDomain)
|
|
||||||
for _, domain := range domainArray {
|
|
||||||
if domain == "" {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
domainModel, err := getDomain(domain, defaultHttpPort)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if reflect.DeepEqual(domainModel, model.WebsiteDomain{}) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
domains = append(domains, domainModel)
|
|
||||||
}
|
|
||||||
if err = configDefaultNginx(website, domains, appInstall, runtime); err != nil {
|
if err = configDefaultNginx(website, domains, appInstall, runtime); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -463,14 +492,18 @@ func (w WebsiteService) CreateWebsiteDomain(create request.WebsiteDomainCreate)
|
|||||||
return domainModel, err
|
return domainModel, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if existDomains, _ := websiteDomainRepo.GetBy(websiteDomainRepo.WithDomain(create.Domain), websiteDomainRepo.WithPort(create.Port)); len(existDomains) == 0 {
|
if create.Port != httpPort {
|
||||||
if existAppInstall, _ := appInstallRepo.GetFirst(appInstallRepo.WithPort(create.Port)); !reflect.DeepEqual(existAppInstall, model.AppInstall{}) {
|
if existPorts, _ := websiteDomainRepo.GetBy(websiteDomainRepo.WithPort(create.Port)); len(existPorts) == 0 {
|
||||||
|
if existAppInstall, _ := appInstallRepo.GetFirst(appInstallRepo.WithPort(create.Port)); existAppInstall.ID > 0 {
|
||||||
return domainModel, buserr.WithMap(constant.ErrPortInOtherApp, map[string]interface{}{"port": create.Port, "apps": existAppInstall.App.Name}, nil)
|
return domainModel, buserr.WithMap(constant.ErrPortInOtherApp, map[string]interface{}{"port": create.Port, "apps": existAppInstall.App.Name}, nil)
|
||||||
}
|
}
|
||||||
if common.ScanPort(create.Port) {
|
if common.ScanPort(create.Port) {
|
||||||
return domainModel, buserr.WithDetail(constant.ErrPortInUsed, create.Port, nil)
|
return domainModel, buserr.WithDetail(constant.ErrPortInUsed, create.Port, nil)
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if existDomains, _ := websiteDomainRepo.GetBy(websiteDomainRepo.WithDomain(create.Domain), websiteDomainRepo.WithPort(create.Port)); len(existDomains) > 0 {
|
||||||
return domainModel, buserr.WithDetail(constant.ErrDomainIsExist, create.Domain, nil)
|
return domainModel, buserr.WithDetail(constant.ErrDomainIsExist, create.Domain, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user