summaryrefslogtreecommitdiffstats
path: root/utils/password.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils/password.go')
-rw-r--r--utils/password.go62
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