Files
Fail2banMqttActionBanishment/emitter/banevents/forms.py
T
2026-07-20 11:05:07 +02:00

25 lines
888 B
Python

from django import forms
from .models import EnrollmentRequest
class EnrollmentRequestForm(forms.ModelForm):
"""Formulaire public de /communaute/. `website` n'est pas un champ du
modèle (absent de Meta.fields, jamais sauvegardé) — honeypot anti-spam
classique : caché par CSS côté template, un humain ne le remplit
jamais, un bot qui remplit tout aveuglément si. Rempli => la vue
ignore silencieusement la soumission, sans message d'erreur (ne pas
indiquer au bot qu'il a été détecté)."""
website = forms.CharField(required=False, widget=forms.HiddenInput)
class Meta:
model = EnrollmentRequest
fields = ['email', 'node_name', 'country', 'message']
widgets = {
'message': forms.Textarea(attrs={'rows': 4}),
}
def is_spam(self) -> bool:
return bool(self.cleaned_data.get('website'))