中继仅由enabled开关控制,不再根据旧字段自动启用或沿用旧开关状态。
This commit is contained in:
parent
3cca3438b8
commit
81bb792ba7
@ -897,9 +897,6 @@ func applySectionPayload(current RuntimeConfig, section Section, payload json.Ra
|
||||
return RuntimeConfig{}, ErrInvalidSecretChange
|
||||
}
|
||||
clearRelay = value.SMTPSectionConfig.Relay.Clear
|
||||
if !value.SMTPSectionConfig.Relay.relayEnabledSet {
|
||||
value.SMTPSectionConfig.Relay.RelayEnabled = current.SMTP.Relay.RelayEnabled
|
||||
}
|
||||
if clearRelay {
|
||||
clearSMTPRelay(&value.SMTPSectionConfig.Relay)
|
||||
} else {
|
||||
@ -933,9 +930,6 @@ func applySectionPayload(current RuntimeConfig, section Section, payload json.Ra
|
||||
return RuntimeConfig{}, ErrInvalidSecretChange
|
||||
}
|
||||
clearRelay = value.MailSectionConfig.Relay.Clear
|
||||
if !value.MailSectionConfig.Relay.relayEnabledSet {
|
||||
value.MailSectionConfig.Relay.RelayEnabled = current.SMTP.Relay.RelayEnabled
|
||||
}
|
||||
if clearRelay {
|
||||
clearSMTPRelay(&value.MailSectionConfig.Relay)
|
||||
} else {
|
||||
@ -1017,7 +1011,6 @@ func clearSMTPRelay(relay *SMTPConfig) {
|
||||
relay.From = ""
|
||||
relay.FromDomain = ""
|
||||
relay.Clear = false
|
||||
relay.relayEnabledSet = true
|
||||
}
|
||||
|
||||
func setCandidateGeneration(candidate *RuntimeConfig, generation uint64) {
|
||||
|
||||
@ -763,7 +763,6 @@ func validLegacyDatabasePassword(value string) bool {
|
||||
|
||||
func legacySMTPConfig(root string, vault *credential.Vault, legacy legacyMigrationConfig) (SMTPConfig, []string, error) {
|
||||
relay := SMTPConfig{
|
||||
RelayEnabled: legacy.SMTPHost != "" || legacy.SMTPPort != 0 || legacy.SMTPUsername != "" || legacy.SMTPFrom != "" || legacy.SMTPPassword != "",
|
||||
RelayHost: legacy.SMTPHost,
|
||||
RelayPort: legacy.SMTPPort,
|
||||
Username: legacy.SMTPUsername,
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"time"
|
||||
)
|
||||
import "time"
|
||||
|
||||
type SetupState string
|
||||
|
||||
@ -96,41 +93,6 @@ type SMTPConfig struct {
|
||||
VerificationEnabled bool `json:"verificationEnabled"`
|
||||
LoginPolicy string `json:"loginPolicy"`
|
||||
Clear bool `json:"clear,omitempty"`
|
||||
relayEnabledSet bool `json:"-"`
|
||||
}
|
||||
|
||||
func (s *SMTPConfig) UnmarshalJSON(data []byte) error {
|
||||
type smtpConfigAlias SMTPConfig
|
||||
var value smtpConfigAlias
|
||||
if err := json.Unmarshal(data, &value); err != nil {
|
||||
return err
|
||||
}
|
||||
var fields map[string]json.RawMessage
|
||||
if err := json.Unmarshal(data, &fields); err != nil {
|
||||
return err
|
||||
}
|
||||
*s = SMTPConfig(value)
|
||||
_, enabledProvided := fields["enabled"]
|
||||
configured := smtpRelayFieldsConfigured(*s)
|
||||
s.relayEnabledSet = enabledProvided && (s.RelayEnabled || configured)
|
||||
if !enabledProvided {
|
||||
s.RelayEnabled = configured
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s SMTPConfig) MarshalJSON() ([]byte, error) {
|
||||
type smtpConfigAlias SMTPConfig
|
||||
data, err := json.Marshal(smtpConfigAlias(s))
|
||||
if err != nil || s.RelayEnabled || s.relayEnabledSet {
|
||||
return data, err
|
||||
}
|
||||
var fields map[string]json.RawMessage
|
||||
if err := json.Unmarshal(data, &fields); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
delete(fields, "enabled")
|
||||
return json.Marshal(fields)
|
||||
}
|
||||
|
||||
type EmailConfig struct {
|
||||
|
||||
@ -288,7 +288,6 @@ func CurrentSMTPRuntimeSettings() (SMTPRuntimeSettings, error) {
|
||||
return SMTPRuntimeSettings{}, fmt.Errorf("runtime configuration is unavailable")
|
||||
}
|
||||
settings.Relay = SMTPConfig{
|
||||
RelayEnabled: cfg.SMTPHost != "" || cfg.SMTPPort != 0 || cfg.SMTPUsername != "" || cfg.SMTPFrom != "" || cfg.SMTPPassword != "",
|
||||
RelayHost: cfg.SMTPHost,
|
||||
RelayPort: cfg.SMTPPort,
|
||||
Username: cfg.SMTPUsername,
|
||||
|
||||
@ -173,11 +173,11 @@ func smtpRelayFieldsConfigured(smtp SMTPConfig) bool {
|
||||
}
|
||||
|
||||
func smtpRelayConfigured(smtp SMTPConfig) bool {
|
||||
return smtpRelayFieldsConfigured(smtp) || smtp.RelayEnabled
|
||||
return smtp.RelayEnabled
|
||||
}
|
||||
|
||||
func smtpRelayEnabled(smtp SMTPConfig) bool {
|
||||
return smtp.RelayEnabled || (!smtp.relayEnabledSet && smtpRelayFieldsConfigured(smtp))
|
||||
return smtp.RelayEnabled
|
||||
}
|
||||
|
||||
func (smtp SMTPConfig) RelayActive() bool {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user