Source code for akvo.password_policy.models

from django.db import models
from django.conf import settings


[docs]class PolicyConfig(models.Model): name = models.CharField(max_length=100, unique=True) expiration = models.PositiveSmallIntegerField( blank=True, null=True, help_text="Maximum password age (days). Set empty for never expires", ) reuse = models.PositiveSmallIntegerField( blank=True, null=True, verbose_name="Reuse policy" ) min_length = models.PositiveSmallIntegerField(default=5) letters = models.PositiveSmallIntegerField(blank=True, null=True, default=1) uppercases = models.PositiveSmallIntegerField(blank=True, null=True) numbers = models.PositiveSmallIntegerField(blank=True, null=True) symbols = models.PositiveSmallIntegerField(blank=True, null=True) no_common_password = models.BooleanField(default=False) no_user_attributes = models.BooleanField(default=False) def __str__(self): return self.name
[docs]class RegexRuleConfig(models.Model): config = models.ForeignKey( PolicyConfig, on_delete=models.CASCADE, related_name="regex_rules" ) pattern = models.CharField(max_length=255)
[docs]class PasswordHistory(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) password = models.CharField(max_length=128) created_at = models.DateTimeField(auto_now_add=True)