From 85229faad0029a3770ca3b31036856e0b3bbe49b Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Thu, 29 Aug 2024 08:50:50 -0700 Subject: [PATCH] 17289 add password validation --- netbox/utilities/password_validation.py | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 netbox/utilities/password_validation.py diff --git a/netbox/utilities/password_validation.py b/netbox/utilities/password_validation.py new file mode 100644 index 000000000..ef5da076e --- /dev/null +++ b/netbox/utilities/password_validation.py @@ -0,0 +1,27 @@ +from django.core.exceptions import ValidationError +from django.utils.translation import gettext as _ + + +class NumericAlphaPasswordValidator: + """ + Validate that the password has at least one numeral, one uppercase letter and one lowercase letter. + """ + + def validate(self, password, user=None): + if not any(char.isdigit() for char in password): + raise ValidationError( + _("Password should have at least one numeral"), + ) + + if not any(char.isupper() for char in password): + raise ValidationError( + _("Password should have at least one uppercase letter"), + ) + + if not any(char.islower() for char in password): + raise ValidationError( + _("Password should have at least one lowercase letter"), + ) + + def get_help_text(self): + return _("Your password must contain at least one numeral, one uppercase letter and one lowercase letter.")