mirror of
https://github.com/portainer/portainer.git
synced 2025-07-18 21:09:40 +02:00
* feat(password) EE-2690 enforce strong password policy * feat(password) EE-2690 disable create user button if password is not valid * feat(password) EE-2690 show force password change warning only when week password is detected * feat(password) EE-2690 prevent users leave account page by clicking add access token button Co-authored-by: Simon Meng <simon.meng@portainer.io>
33 lines
577 B
Go
33 lines
577 B
Go
package passwordutils
|
|
|
|
import (
|
|
"regexp"
|
|
)
|
|
|
|
const MinPasswordLen = 12
|
|
|
|
func lengthCheck(password string) bool {
|
|
return len(password) >= MinPasswordLen
|
|
}
|
|
|
|
func comboCheck(password string) bool {
|
|
count := 0
|
|
regexps := [4]*regexp.Regexp{
|
|
regexp.MustCompile(`[a-z]`),
|
|
regexp.MustCompile(`[A-Z]`),
|
|
regexp.MustCompile(`[0-9]`),
|
|
regexp.MustCompile(`[\W_]`),
|
|
}
|
|
|
|
for _, re := range regexps {
|
|
if re.FindString(password) != "" {
|
|
count += 1
|
|
}
|
|
}
|
|
|
|
return count >= 3
|
|
}
|
|
|
|
func StrengthCheck(password string) bool {
|
|
return lengthCheck(password) && comboCheck(password)
|
|
}
|