hide/ignore ssl_cert when on windows

x509.SystemCertPool is unavailable on windows, so any value is ignored
and the setting is hidden on the web UI.
This commit is contained in:
Harvey Tindall 2021-05-17 01:16:59 +01:00
parent 76bbb3f147
commit 057f306ed9
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
2 changed files with 25 additions and 0 deletions

10
api.go
View File

@ -1398,6 +1398,16 @@ func (app *appContext) GetConfig(gc *gin.Context) {
}
}
}
if PLATFORM == "windows" {
delete(resp.Sections["smtp"].Settings, "ssl_cert")
for i, v := range resp.Sections["smtp"].Order {
if v == "ssl_cert" {
sect := resp.Sections["smtp"]
sect.Order = append(sect.Order[:i], sect.Order[i+1:]...)
resp.Sections["smtp"] = sect
}
}
}
for sectName, section := range resp.Sections {
for settingName, setting := range section.Settings {
val := app.config.Section(sectName).Key(settingName)

View File

@ -177,11 +177,26 @@ func (emailer *Emailer) NewMailgun(url, key string) {
// NewSMTP returns an SMTP emailClient.
func (emailer *Emailer) NewSMTP(server string, port int, username, password string, sslTLS bool, certPath string) (err error) {
// x509.SystemCertPool is unavailable on windows
if PLATFORM == "windows" {
emailer.sender = &SMTP{
auth: smtp.PlainAuth("", username, password, server),
server: server,
port: port,
sslTLS: sslTLS,
tlsConfig: &tls.Config{
InsecureSkipVerify: false,
ServerName: server,
},
}
return
}
rootCAs, err := x509.SystemCertPool()
if rootCAs == nil || err != nil {
rootCAs = x509.NewCertPool()
}
if certPath != "" {
fmt.Println("RUN")
var cert []byte
cert, err = os.ReadFile(certPath)
if rootCAs.AppendCertsFromPEM(cert) == false {