File size: 1,481 Bytes
667aacd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | """
Forms for the security app — MFA setup, verification, and device management.
"""
from django import forms
class MFASetupForm(forms.Form):
"""Verify OTP code during TOTP setup."""
otp_code = forms.CharField(
max_length=6,
min_length=6,
widget=forms.TextInput(
attrs={
"class": "form-input",
"placeholder": "000000",
"autocomplete": "one-time-code",
"id": "mfa-otp-code",
"pattern": "[0-9]{6}",
"inputmode": "numeric",
}
),
)
class MFAVerifyForm(forms.Form):
"""Verify OTP code during login."""
otp_code = forms.CharField(
max_length=6,
min_length=6,
widget=forms.TextInput(
attrs={
"class": "form-input",
"placeholder": "000000",
"autocomplete": "one-time-code",
"id": "mfa-verify-code",
"pattern": "[0-9]{6}",
"inputmode": "numeric",
}
),
)
trust_device = forms.BooleanField(required=False)
class BackupCodeForm(forms.Form):
"""Verify a backup code for MFA recovery."""
backup_code = forms.CharField(
max_length=9,
widget=forms.TextInput(
attrs={
"class": "form-input",
"placeholder": "XXXX-XXXX",
"id": "backup-code",
}
),
)
|