Smail/server/services/setup/domain.go

55 lines
1.2 KiB
Go

package setup
import (
"git.pcux.cn/xuans/Smail/config"
"git.pcux.cn/xuans/Smail/utils/array"
"git.pcux.cn/xuans/Smail/utils/errors"
"strings"
)
func GetDomainSettings() (string, string, []string, error) {
configData, err := config.ReadConfig()
if err != nil {
return "", "", []string{}, errors.Wrap(err)
}
return configData.Domain, configData.WebDomain, array.Difference(configData.Domains, []string{configData.Domain}), nil
}
func SetDomainSettings(smtpDomain, webDomain, multiDomains string) error {
configData, err := config.ReadConfig()
if err != nil {
return errors.Wrap(err)
}
if smtpDomain == "" {
return errors.New("domain must not empty!")
}
if webDomain == "" {
return errors.New("web domain must not empty!")
}
configData.Domains = []string{}
if multiDomains != "" {
domains := strings.Split(multiDomains, ",")
configData.Domains = domains
}
if !array.InArray(smtpDomain, configData.Domains) {
configData.Domains = append(configData.Domains, smtpDomain)
}
configData.Domain = smtpDomain
configData.WebDomain = webDomain
// 检查域名是否指向本机 todo
err = config.WriteConfig(configData)
if err != nil {
return errors.Wrap(err)
}
return nil
}