From 72c7014e035791cc5a4d08d9db880d5de33b7a0d Mon Sep 17 00:00:00 2001 From: hoangvv Date: Mon, 25 Nov 2024 16:04:00 +0700 Subject: [PATCH] fix bug: fix cant apply https when update domain --- route/v1/user.go | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/route/v1/user.go b/route/v1/user.go index 9314c06..2d541de 100644 --- a/route/v1/user.go +++ b/route/v1/user.go @@ -295,6 +295,7 @@ func OnePanelUpdateWebsite(c *gin.Context) { fmt.Println(updateProxyResult) sslId := -1 acmeId := 0 + var validSSL bool var searchSSLParam model2.SearchSSLRequest if sslProvider == "selfSigned" { searchSSLParam.AcmeAccountID = strconv.Itoa(acmeId) @@ -308,10 +309,12 @@ func OnePanelUpdateWebsite(c *gin.Context) { Success: common_err.SERVICE_ERROR, Message: common_err.GetMsg(common_err.SERVICE_ERROR), }) + return } for _, item := range searchSSL.Data { - if item.Provider == sslProvider && item.PrimaryDomain == domain { + if item.Provider == sslProvider && item.PrimaryDomain == domain && item.Status == "ready" { sslId = item.ID + validSSL = true break } } @@ -332,7 +335,7 @@ func OnePanelUpdateWebsite(c *gin.Context) { } if sslId < 0 { //TODO create new SSL if not exist - if sslProvider == "selfSigned" { + if sslProvider == "http" { sslId, err = OnePanelApplyWebsiteSSl(domain, search.Data.Items[0].ID, headers) if err != nil { c.JSON(common_err.SERVICE_ERROR, @@ -341,6 +344,18 @@ func OnePanelUpdateWebsite(c *gin.Context) { Message: common_err.GetMsg(common_err.SERVICE_ERROR), }) } + if sslId > 0 { + validSSL, err = checkGlobalSSLStatus(sslId, headers, domain, 10) + if err != nil { + c.JSON(common_err.SUCCESS, + model.Result{ + Success: common_err.COMMAND_ERROR_INVALID_OPERATION, + Message: fmt.Sprintf("Fail to upgrade %s from http to https", domain), + Data: false, + }) + return + } + } } else { sslId, err = IssueSelfSignedCert(domain, search.Data.Items[0].ID, headers, 3) if err != nil { @@ -350,8 +365,18 @@ func OnePanelUpdateWebsite(c *gin.Context) { Message: common_err.GetMsg(common_err.SERVICE_ERROR), }) } + validSSL = true } } + if sslId < 0 || !validSSL { + c.JSON(common_err.SUCCESS, + model.Result{ + Success: common_err.COMMAND_ERROR_INVALID_OPERATION, + Message: fmt.Sprintf("Fail to Create SSL or domain %s is invalid to create global SSL", domain), + Data: false, + }) + return + } updateHttps, err := UpdateWebsiteHttps(true, acmeId, sslId, search.Data.Items[0].ID, headers) if err != nil { c.JSON(common_err.SERVICE_ERROR, @@ -362,7 +387,6 @@ func OnePanelUpdateWebsite(c *gin.Context) { } fmt.Println(updateHttps) return - } } func OnePanelCreateWebsite(c *gin.Context) { @@ -442,8 +466,9 @@ func OnePanelCreateWebsite(c *gin.Context) { } for _, item := range ssl.Data { - if item.PrimaryDomain == domain && item.Provider == sslProvider { + if item.PrimaryDomain == domain && item.Provider == sslProvider && item.Status == "ready" { sslId = item.ID + validSSL = true break } }