Remove custom evennia pwd validator for more pwd flexibility. Resolve #3415

This commit is contained in:
Griatch 2024-02-25 11:54:53 +01:00
parent 0edcebea0f
commit 32e9520db9
4 changed files with 14 additions and 71 deletions

View file

@ -69,20 +69,6 @@ class TestDeprecations(TestCase):
)
class ValidatorTest(BaseEvenniaTest):
def test_validator(self):
# Validator returns None on success and ValidationError on failure.
validator = EvenniaPasswordValidator()
# This password should meet Evennia standards.
self.assertFalse(validator.validate("testpassword", user=self.account))
# This password contains illegal characters and should raise an Exception.
from django.core.exceptions import ValidationError
self.assertRaises(ValidationError, validator.validate, "(#)[#]<>", user=self.account)
class ThrottleTest(BaseEvenniaTest):
"""
Class for testing the connection/IP throttle.

View file

@ -39,52 +39,3 @@ class EvenniaUsernameAvailabilityValidator:
_("Sorry, that username is already taken."), code="evennia_username_taken"
)
class EvenniaPasswordValidator:
def __init__(
self,
regex=r"^[\w. @+\-',]+$",
policy="Password should contain a mix of letters, spaces, digits and @/./+/-/_/'/, only.",
):
"""
Constructs a standard Django password validator.
Args:
regex (str): Regex pattern of valid characters to allow.
policy (str): Brief explanation of what the defined regex permits.
"""
self.regex = regex
self.policy = policy
def validate(self, password, user=None):
"""
Validates a password string to make sure it meets predefined Evennia
acceptable character policy.
Args:
password (str): Password to validate
user (None): Unused argument but required by Django
Returns:
None (None): None if password successfully validated,
raises ValidationError otherwise.
"""
# Check complexity
if not re.findall(self.regex, password):
raise ValidationError(_(self.policy), code="evennia_password_policy")
def get_help_text(self):
"""
Returns a user-facing explanation of the password policy defined
by this validator.
Returns:
text (str): Explanation of password policy.
"""
return _(
"{policy} From a terminal client, you can also use a phrase of multiple words if "
"you enclose the password in double quotes.".format(policy=self.policy)
)

View file

@ -1096,7 +1096,6 @@ AUTH_PASSWORD_VALIDATORS = [
},
{"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator"},
{"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator"},
{"NAME": "evennia.server.validators.EvenniaPasswordValidator"},
]
# Username validation plugins