diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2023-05-30 11:53:38 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2023-05-30 15:59:43 +0200 |
commit | 9cdca1f9582597c3998e44cd16509ead362a90df (patch) | |
tree | a0bd56956bf0b67a5e3f9f6f7ff5125abf1d55ee /config | |
parent | 6462eecfbd7abc14fa62b33bb079ba424de7d765 (diff) |
Fail on invalid defaultContentLanguage
Fixes #11044
Diffstat (limited to 'config')
-rw-r--r-- | config/allconfig/alldecoders.go | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/config/allconfig/alldecoders.go b/config/allconfig/alldecoders.go index b798ef798..b45bd1e11 100644 --- a/config/allconfig/alldecoders.go +++ b/config/allconfig/alldecoders.go @@ -60,7 +60,14 @@ var allDecoderSetups = map[string]decodeWeight{ key: "", weight: -100, // Always first. decode: func(d decodeWeight, p decodeConfig) error { - return mapstructure.WeakDecode(p.p.Get(""), &p.c.RootConfig) + if err := mapstructure.WeakDecode(p.p.Get(""), &p.c.RootConfig); err != nil { + return err + } + + // This need to match with Lang which is always lower case. + p.c.RootConfig.DefaultContentLanguage = strings.ToLower(p.c.RootConfig.DefaultContentLanguage) + + return nil }, }, "imaging": { @@ -263,6 +270,18 @@ var allDecoderSetups = map[string]decodeWeight{ return err } + // Validate defaultContentLanguage. + var found bool + for lang := range p.c.Languages { + if lang == p.c.DefaultContentLanguage { + found = true + break + } + } + if !found { + return fmt.Errorf("config value %q for defaultContentLanguage does not match any language definition", p.c.DefaultContentLanguage) + } + return nil }, }, |