forked from DGNum/gestioCOF
Préparation Django2 : vues de login/logout
À partir de Django 2.1, les vues de login et logout sont class-based uniquement. On passe donc à django-cas-ng 2.6 pour harmoniser. On cleanup un peu le processus de login avec une classe un peu propre + un vrai formulaire/des vrais templates.
This commit is contained in:
parent
cef75e56d7
commit
a1ead1bfc8
6 changed files with 78 additions and 36 deletions
|
@ -1,4 +1,5 @@
|
|||
from django import forms
|
||||
from django.contrib.auth.forms import AuthenticationForm
|
||||
from django.contrib.auth.models import User
|
||||
from django.forms.formsets import BaseFormSet, formset_factory
|
||||
from django.forms.widgets import CheckboxSelectMultiple, RadioSelect
|
||||
|
@ -10,6 +11,37 @@ from gestioncof.models import CalendarSubscription, Club, CofProfile, EventComme
|
|||
from gestioncof.widgets import TriStateCheckbox
|
||||
|
||||
|
||||
class ExteAuthenticationForm(AuthenticationForm):
|
||||
"""
|
||||
Formulaire pour l'authentification des extés : renvoie une erreur si la personne
|
||||
qui essaie de s'authentifier n'a pas de mot de passe. L'erreur dépend de si la
|
||||
personne a un login clipper ou non.
|
||||
"""
|
||||
|
||||
def clean(self):
|
||||
username = self.cleaned_data.get("username")
|
||||
|
||||
if username is not None:
|
||||
try:
|
||||
user = User.objects.get(username=username)
|
||||
if not user.has_usable_password() or user.password in ("", "!"):
|
||||
profile, created = CofProfile.objects.get_or_create(user=user)
|
||||
if profile.login_clipper:
|
||||
raise forms.ValidationError(
|
||||
_("L'utilisateur·ice a un login clipper !"),
|
||||
code="has_clipper",
|
||||
)
|
||||
else:
|
||||
raise forms.ValidationError(
|
||||
_("L'utilisateur·ice n'a pas de mot de passe"),
|
||||
code="no_password",
|
||||
)
|
||||
except User.DoesNotExist:
|
||||
pass
|
||||
|
||||
return super().clean()
|
||||
|
||||
|
||||
class EventForm(forms.Form):
|
||||
def __init__(self, *args, **kwargs):
|
||||
event = kwargs.pop("event")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue