diff options
author | Chris <ccbrown112@gmail.com> | 2017-11-20 11:04:04 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-20 11:04:04 -0600 |
commit | d1cee022471f43decafc4da0bff7892ff52f0664 (patch) | |
tree | a114ba5f223eaad489c8d8a6edb22ac5cc63e4f9 /utils/password.go | |
parent | ab6ef954b4acbd30ba87c2a7680e7843b946adca (diff) | |
download | chat-d1cee022471f43decafc4da0bff7892ff52f0664.tar.gz chat-d1cee022471f43decafc4da0bff7892ff52f0664.tar.bz2 chat-d1cee022471f43decafc4da0bff7892ff52f0664.zip |
Refactor password validation and config defaults (#7859)
* refactor password validation and config defaults
* reorder config lines for clarity
Diffstat (limited to 'utils/password.go')
-rw-r--r-- | utils/password.go | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/utils/password.go b/utils/password.go index f64d6f6ab..b24d6c2ec 100644 --- a/utils/password.go +++ b/utils/password.go @@ -11,55 +11,55 @@ import ( ) func IsPasswordValid(password string) *model.AppError { + if len(password) > model.PASSWORD_MAXIMUM_LENGTH || len(password) < model.PASSWORD_MINIMUM_LENGTH { + return model.NewAppError("User.IsValid", "model.user.is_valid.pwd.app_error", map[string]interface{}{"Min": model.PASSWORD_MINIMUM_LENGTH}, "", http.StatusBadRequest) + } + + return nil +} + +func IsPasswordValidWithSettings(password string, settings *model.PasswordSettings) *model.AppError { id := "model.user.is_valid.pwd" isError := false - min := model.PASSWORD_MINIMUM_LENGTH - if IsLicensed() && *License().Features.PasswordRequirements { - if len(password) < *Cfg.PasswordSettings.MinimumLength || len(password) > model.PASSWORD_MAXIMUM_LENGTH { - isError = true - } - - if *Cfg.PasswordSettings.Lowercase { - if !strings.ContainsAny(password, model.LOWERCASE_LETTERS) { - isError = true - } + if len(password) < *settings.MinimumLength || len(password) > model.PASSWORD_MAXIMUM_LENGTH { + isError = true + } - id = id + "_lowercase" + if *settings.Lowercase { + if !strings.ContainsAny(password, model.LOWERCASE_LETTERS) { + isError = true } - if *Cfg.PasswordSettings.Uppercase { - if !strings.ContainsAny(password, model.UPPERCASE_LETTERS) { - isError = true - } + id = id + "_lowercase" + } - id = id + "_uppercase" + if *settings.Uppercase { + if !strings.ContainsAny(password, model.UPPERCASE_LETTERS) { + isError = true } - if *Cfg.PasswordSettings.Number { - if !strings.ContainsAny(password, model.NUMBERS) { - isError = true - } + id = id + "_uppercase" + } - id = id + "_number" + if *settings.Number { + if !strings.ContainsAny(password, model.NUMBERS) { + isError = true } - if *Cfg.PasswordSettings.Symbol { - if !strings.ContainsAny(password, model.SYMBOLS) { - isError = true - } + id = id + "_number" + } - id = id + "_symbol" + if *settings.Symbol { + if !strings.ContainsAny(password, model.SYMBOLS) { + isError = true } - min = *Cfg.PasswordSettings.MinimumLength - } else if len(password) > model.PASSWORD_MAXIMUM_LENGTH || len(password) < model.PASSWORD_MINIMUM_LENGTH { - isError = true - min = model.PASSWORD_MINIMUM_LENGTH + id = id + "_symbol" } if isError { - return model.NewAppError("User.IsValid", id+".app_error", map[string]interface{}{"Min": min}, "", http.StatusBadRequest) + return model.NewAppError("User.IsValid", id+".app_error", map[string]interface{}{"Min": *settings.MinimumLength}, "", http.StatusBadRequest) } return nil |