honeypot field
This commit is contained in:
parent
39100ce3c2
commit
5c1128426a
2 changed files with 52 additions and 0 deletions
|
|
@ -1,4 +1,21 @@
|
||||||
from django import forms
|
from django import forms
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
|
|
||||||
|
|
||||||
|
class HoneypotField(forms.BooleanField):
|
||||||
|
default_widget = forms.CheckboxInput(
|
||||||
|
{'style': 'display:none !important;', 'tabindex': '-1', 'autocomplete': 'off'})
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
kwargs.setdefault('widget', HoneypotField.default_widget)
|
||||||
|
kwargs['required'] = False
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def clean(self, value):
|
||||||
|
if cleaned_value := super().clean(value):
|
||||||
|
raise ValidationError('')
|
||||||
|
else:
|
||||||
|
return cleaned_value
|
||||||
|
|
||||||
|
|
||||||
class RegisterDevice(forms.Form):
|
class RegisterDevice(forms.Form):
|
||||||
|
|
@ -48,6 +65,7 @@ class RegisterDevice(forms.Form):
|
||||||
"Datenschutzerklärung</a> einverstanden.",
|
"Datenschutzerklärung</a> einverstanden.",
|
||||||
required=True
|
required=True
|
||||||
)
|
)
|
||||||
|
accept_agb = HoneypotField(label="")
|
||||||
|
|
||||||
|
|
||||||
class RegisterGuest(forms.Form):
|
class RegisterGuest(forms.Form):
|
||||||
|
|
@ -64,3 +82,4 @@ class RegisterGuest(forms.Form):
|
||||||
label="Wohnort",
|
label="Wohnort",
|
||||||
max_length=200
|
max_length=200
|
||||||
)
|
)
|
||||||
|
accept_agb = HoneypotField(label="")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Generated by Django 4.2 on 2023-04-23 10:09
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('repapp', '0012_remove_device_secret_remove_guest_confirmed_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='cafe',
|
||||||
|
name='address',
|
||||||
|
field=models.CharField(max_length=200, verbose_name='Adresse'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='device',
|
||||||
|
name='device',
|
||||||
|
field=models.CharField(max_length=200, verbose_name='Art des Geräts'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='device',
|
||||||
|
name='error',
|
||||||
|
field=models.TextField(verbose_name='Fehlerbeschreibung'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='device',
|
||||||
|
name='manufacturer',
|
||||||
|
field=models.CharField(max_length=200, verbose_name='Hersteller & Modell/Typ'),
|
||||||
|
),
|
||||||
|
]
|
||||||
Reference in a new issue