Remove custom evennia pwd validator for more pwd flexibility. Resolve #3415
This commit is contained in:
parent
0edcebea0f
commit
32e9520db9
4 changed files with 14 additions and 71 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue