diff --git a/backend/config/manager_v2.go b/backend/config/manager_v2.go index d4dd3005..6fb382a1 100644 --- a/backend/config/manager_v2.go +++ b/backend/config/manager_v2.go @@ -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) { diff --git a/backend/config/migrate.go b/backend/config/migrate.go index 78052a4e..1a7cddce 100644 --- a/backend/config/migrate.go +++ b/backend/config/migrate.go @@ -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, diff --git a/backend/config/model.go b/backend/config/model.go index 215221f2..02b07310 100644 --- a/backend/config/model.go +++ b/backend/config/model.go @@ -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 { diff --git a/backend/config/runtime_access.go b/backend/config/runtime_access.go index c7102842..77c52193 100644 --- a/backend/config/runtime_access.go +++ b/backend/config/runtime_access.go @@ -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, diff --git a/backend/config/validator.go b/backend/config/validator.go index a42a8e00..2f9171f8 100644 --- a/backend/config/validator.go +++ b/backend/config/validator.go @@ -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 {