summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-05-30 11:53:38 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-05-30 15:59:43 +0200
commit9cdca1f9582597c3998e44cd16509ead362a90df (patch)
treea0bd56956bf0b67a5e3f9f6f7ff5125abf1d55ee /config
parent6462eecfbd7abc14fa62b33bb079ba424de7d765 (diff)
Fail on invalid defaultContentLanguage
Fixes #11044
Diffstat (limited to 'config')
-rw-r--r--config/allconfig/alldecoders.go21
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
},
},