diff options
Diffstat (limited to 'utils/config.go')
-rw-r--r-- | utils/config.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/utils/config.go b/utils/config.go index 0908f2297..fd1597132 100644 --- a/utils/config.go +++ b/utils/config.go @@ -196,6 +196,10 @@ func LoadConfig(fileName string) { } } + if err := ValidateLocales(&config); err != nil { + panic(T(err.Id)) + } + if err := ValidateLdapFilter(&config); err != nil { panic(T(err.Id)) } @@ -387,6 +391,29 @@ func ValidateLdapFilter(cfg *model.Config) *model.AppError { return nil } +func ValidateLocales(cfg *model.Config) *model.AppError { + locales := GetSupportedLocales() + if _, ok := locales[*cfg.LocalizationSettings.DefaultServerLocale]; !ok { + return model.NewLocAppError("ValidateLocales", "utils.config.supported_server_locale.app_error", nil, "") + } + + if _, ok := locales[*cfg.LocalizationSettings.DefaultClientLocale]; !ok { + return model.NewLocAppError("ValidateLocales", "utils.config.supported_client_locale.app_error", nil, "") + } + + if len(*cfg.LocalizationSettings.AvailableLocales) > 0 { + for _, word := range strings.Split(*cfg.LocalizationSettings.AvailableLocales, ",") { + if word == *cfg.LocalizationSettings.DefaultClientLocale { + return nil + } + } + + return model.NewLocAppError("ValidateLocales", "utils.config.validate_locale.app_error", nil, "") + } + + return nil +} + func Desanitize(cfg *model.Config) { if cfg.LdapSettings.BindPassword != nil && *cfg.LdapSettings.BindPassword == model.FAKE_SETTING { *cfg.LdapSettings.BindPassword = *Cfg.LdapSettings.BindPassword |