Source code for oioioi.base.validators

import re

from django.core.exceptions import ValidationError
from django.utils.translation import gettext as _
from django.contrib.auth import password_validation

[docs]class NumberValidator(object):
[docs] def validate(self, password, user=None): if not re.findall('\d', password): raise ValidationError( _("The password must contain at least 1 digit, 0-9."), code='password_no_number', )
[docs] def get_help_text(self): return _( "Your password must contain at least 1 digit, 0-9." )
[docs]class UppercaseValidator(object):
[docs] def validate(self, password, user=None): if not re.findall('[A-Z]', password): raise ValidationError( _("The password must contain at least 1 uppercase letter, A-Z."), code='password_no_upper', )
[docs] def get_help_text(self): return _( "Your password must contain at least 1 uppercase letter, A-Z." )
[docs]class LowercaseValidator(object):
[docs] def validate(self, password, user=None): if not re.findall('[a-z]', password): raise ValidationError( _("The password must contain at least 1 lowercase letter, a-z."), code='password_no_lower', )
[docs] def get_help_text(self): return _( "Your password must contain at least 1 lowercase letter, a-z." )
[docs]class SymbolValidator(object):
[docs] def validate(self, password, user=None): if not re.findall('[()[\]{}|\\`~!@#$%^&*_\-+=;:\'",<>./?]', password): raise ValidationError( _("The password must contain at least 1 symbol: " + "()[]{}|\`~!@#$%^&*_-+=;:'\",<>./?"), code='password_no_symbol', )
[docs] def get_help_text(self): return _( "Your password must contain at least 1 symbol: " + "()[]{}|\`~!@#$%^&*_-+=;:'\",<>./?" )
[docs]def get_validators(): validators = [] validators.append(NumberValidator()) validators.append(UppercaseValidator()) validators.append(LowercaseValidator()) validators.append(SymbolValidator()) validators.append(password_validation.MinimumLengthValidator(8)) return validators