This commit is contained in:
@@ -56,67 +56,67 @@ class PasswordScoreValidator:
|
||||
score, used_classes = self._get_score(password, user=user)
|
||||
|
||||
if used_classes < self.min_classes:
|
||||
raise ValidationError(_(u'Das Passwort muss Zeichen aus mindestens %(min_classes)d'
|
||||
u' verschiedenen Arten von Zeichen bestehen'
|
||||
u' (d.h. Kleinbuchstaben, Großbuchstaben, Ziffern und Sonderzeichen).'),
|
||||
raise ValidationError(_('Das Passwort muss Zeichen aus mindestens %(min_classes)d'
|
||||
' verschiedenen Arten von Zeichen bestehen'
|
||||
' (d.h. Kleinbuchstaben, Großbuchstaben, Ziffern und Sonderzeichen).'),
|
||||
code='too_few_classes',
|
||||
params={'min_classes': self.min_classes})
|
||||
|
||||
if score < self.min_score:
|
||||
raise ValidationError(_(u'Dieses Passwort ist zu einfach. Benutze mehr Zeichen'
|
||||
u' und gegebenenfalls auch Großbuchstaben, Ziffern und Sonderzeichen.'),
|
||||
raise ValidationError(_('Dieses Passwort ist zu einfach. Benutze mehr Zeichen'
|
||||
' und gegebenenfalls auch Großbuchstaben, Ziffern und Sonderzeichen.'),
|
||||
code='too_little_score')
|
||||
|
||||
return score
|
||||
|
||||
def get_help_text(self):
|
||||
text = u'%s\n%s' % (
|
||||
_(u'The password must get a minimum score of %d points.') % self.min_score,
|
||||
_(u'For each character the score is increased by 1 point.'),
|
||||
text = '%s\n%s' % (
|
||||
_('The password must get a minimum score of %d points.') % self.min_score,
|
||||
_('For each character the score is increased by 1 point.'),
|
||||
)
|
||||
if self.lcredit > 0:
|
||||
text += '\n'
|
||||
text += _(u'The first %d lower characters increase the score by 1 point each.') % self.lcredit
|
||||
text += _('The first %d lower characters increase the score by 1 point each.') % self.lcredit
|
||||
if self.ucredit > 0:
|
||||
text += '\n'
|
||||
text += _(u'The first %d upper characters increase the score by 1 point each.') % self.ucredit
|
||||
text += _('The first %d upper characters increase the score by 1 point each.') % self.ucredit
|
||||
if self.dcredit > 0:
|
||||
text += '\n'
|
||||
text += _(u'The first %d digits increase the score by 1 point each.') % self.dcredit
|
||||
text += _('The first %d digits increase the score by 1 point each.') % self.dcredit
|
||||
if self.ocredit > 0:
|
||||
text += '\n'
|
||||
text += _(u'The first %d non alpha numeric characters'
|
||||
u' increase the score by 1 point each.') % self.ocredit
|
||||
text += _('The first %d non alpha numeric characters'
|
||||
' increase the score by 1 point each.') % self.ocredit
|
||||
if self.max_repeat > 0:
|
||||
text += '\n'
|
||||
text += _(u'If a particular character is used more than %d times,'
|
||||
u' it will not increase the score anymore.') % self.max_repeat
|
||||
text += _('If a particular character is used more than %d times,'
|
||||
' it will not increase the score anymore.') % self.max_repeat
|
||||
if self.min_classes > 0:
|
||||
text += '\n'
|
||||
text += _(u'Also the password must contain characters from %d different character classes'
|
||||
u' (i.e. lower, upper, digits, others).') % self.min_classes
|
||||
text += _('Also the password must contain characters from %d different character classes'
|
||||
' (i.e. lower, upper, digits, others).') % self.min_classes
|
||||
return text
|
||||
|
||||
|
||||
class CustomWordlistPasswordValidator:
|
||||
context = 'the Sektion Karlsruhe'
|
||||
words = (
|
||||
u'dav',
|
||||
u'berge',
|
||||
u'sektion',
|
||||
u'karlsruhe',
|
||||
u'alpenverein',
|
||||
u'heinzel',
|
||||
u'passwort',
|
||||
'dav',
|
||||
'berge',
|
||||
'sektion',
|
||||
'karlsruhe',
|
||||
'alpenverein',
|
||||
'heinzel',
|
||||
'passwort',
|
||||
)
|
||||
|
||||
def validate(self, password, user=None):
|
||||
def validate(self, password, user=None): # pylint: disable=unused-argument
|
||||
errors = []
|
||||
|
||||
lower_pw = password.lower()
|
||||
for word in self.words:
|
||||
if word in lower_pw:
|
||||
error = ValidationError(_(u'Das Passwort darf nicht die Zeichenfolge \'%(word)s\' enthalten.'),
|
||||
error = ValidationError(_('Das Passwort darf nicht die Zeichenfolge \'%(word)s\' enthalten.'),
|
||||
code='forbidden_word',
|
||||
params={'word': word})
|
||||
errors.append(error)
|
||||
@@ -125,10 +125,10 @@ class CustomWordlistPasswordValidator:
|
||||
raise ValidationError(errors)
|
||||
|
||||
def get_help_text(self):
|
||||
text = _(u'The password must not contain some specific words,'
|
||||
u' that are common in context with %(context)s.') % {'context': self.context}
|
||||
text += u'\n'
|
||||
text += _(u'All words are matched case insensitive.')
|
||||
text = _('The password must not contain some specific words,'
|
||||
' that are common in context with %(context)s.') % {'context': self.context}
|
||||
text += '\n'
|
||||
text += _('All words are matched case insensitive.')
|
||||
return text
|
||||
|
||||
|
||||
@@ -163,26 +163,26 @@ class CharacterClassPasswordValidator:
|
||||
self.minimum_digits = minimum_digits
|
||||
self.minimum_others = minimum_others
|
||||
|
||||
def validate(self, password, user=None):
|
||||
def validate(self, password, user=None): # pylint: disable=unused-argument
|
||||
errors = []
|
||||
if not self._is_enough_lower(password):
|
||||
error = ValidationError(_(u'Das Passwort muss mindestens %(min_lower)d Kleinbuchstaben enthalten.'),
|
||||
error = ValidationError(_('Das Passwort muss mindestens %(min_lower)d Kleinbuchstaben enthalten.'),
|
||||
code='too_few_lower_characters',
|
||||
params={'min_lower': self.minimum_lower})
|
||||
errors.append(error)
|
||||
if not self._is_enough_upper(password):
|
||||
error = ValidationError(_(u'Das Passwort muss mindestens %(min_upper)d Großbuchstaben enthalten.'),
|
||||
error = ValidationError(_('Das Passwort muss mindestens %(min_upper)d Großbuchstaben enthalten.'),
|
||||
code='too_few_upper_characters',
|
||||
params={'min_upper': self.minimum_upper})
|
||||
errors.append(error)
|
||||
if not self._is_enough_digits(password):
|
||||
error = ValidationError(_(u'Das Passwort muss mindestens %(min_digits)d Ziffern enthalten.'),
|
||||
error = ValidationError(_('Das Passwort muss mindestens %(min_digits)d Ziffern enthalten.'),
|
||||
code='too_few_digits',
|
||||
params={'min_digits': self.minimum_digits})
|
||||
errors.append(error)
|
||||
if not self._is_enough_others(password):
|
||||
error = ValidationError(_(u'Das Passwort muss mindestens %(min_others)d'
|
||||
u' Sonderzeichen enthalten.'),
|
||||
error = ValidationError(_('Das Passwort muss mindestens %(min_others)d'
|
||||
' Sonderzeichen enthalten.'),
|
||||
code='too_few_other_characters',
|
||||
params={'min_others': self.minimum_others})
|
||||
errors.append(error)
|
||||
@@ -191,7 +191,7 @@ class CharacterClassPasswordValidator:
|
||||
raise ValidationError(errors)
|
||||
|
||||
def get_help_text(self):
|
||||
text = u'%s %s %s %s' % (
|
||||
text = '%s %s %s %s' % (
|
||||
_('The password must contain at least %d characters from a-z.') % self.minimum_lower,
|
||||
_('The password must contain at least %d characters from A-Z.') % self.minimum_upper,
|
||||
_('The password must contain at least %d digits from 0-9.') % self.minimum_digits,
|
||||
|
||||
Reference in New Issue
Block a user