Formulaire personnalisé de réinitialisation de mot de passe #55

Closed
thubrecht wants to merge 3 commits from thubrecht/custom-reset into master
2 changed files with 17 additions and 4 deletions

View file

@ -47,9 +47,9 @@ en plus du site.
### Dans le fichier `settings.py` ### Dans le fichier `settings.py`
- Ajouter `"authens"` dans les [`INSTALLED_APPS`](https://docs.djangoproject.com/en/3.0/ref/settings/#installed-apps). - Ajouter `"authens"` dans les [`INSTALLED_APPS`](https://docs.djangoproject.com/en/3.2/ref/settings/#installed-apps).
- Ajouter `"authens.backends.ENSCASBackend"` dans les - Ajouter `"authens.backends.ENSCASBackend"` dans les
[`AUTHENTICATION_BACKENDS`](https://docs.djangoproject.com/en/3.0/ref/settings/#authentication-backends). [`AUTHENTICATION_BACKENDS`](https://docs.djangoproject.com/en/3.2/ref/settings/#authentication-backends).
Si `AUTHENTICATION_BACKENDS` n'apparaît pas dans vos settings, utiliser : Si `AUTHENTICATION_BACKENDS` n'apparaît pas dans vos settings, utiliser :
```python ```python
@ -85,11 +85,20 @@ AUTHENS_ALLOW_STAFF = True
- (Optionnel) AuthENS utilise le paramètre Django standard - (Optionnel) AuthENS utilise le paramètre Django standard
[`LOGIN_REDIRECT_URL`](https://docs.djangoproject.com/en/3.0/ref/settings/#login-redirect-url) [`LOGIN_REDIRECT_URL`](https://docs.djangoproject.com/en/3.2/ref/settings/#login-redirect-url)
par défaut pour rediriger l'utilisateurice en cas de connexion réussie. par défaut pour rediriger l'utilisateurice en cas de connexion réussie.
Il peut être utile de définir ce paramètre. Il peut être utile de définir ce paramètre.
- (Optionnel) Pour filtrer quels utilisateurs peuvent réinitialiser leur mot de
passe, il est possible de définir un formulaire personnalisé pour remplacer le
formulaire Django standard [`PasswordResetForm`](https://docs.djangoproject.com/en/3.2/topics/auth/default/#django.contrib.auth.forms.PasswordResetForm)
```python
AUTHENS_PASSWORD_RESET_FORM = CustomPwdResetForm
```
## Utilisation ## Utilisation
À lire À lire
@ -144,7 +153,7 @@ celui-ci. Les templates à substituer sont :
### Migration depuis `django_cas_ng` ### Migration depuis `django_cas_ng`
Pour migrer depuis `django_cas_ng`, il est recommandé de faire une Pour migrer depuis `django_cas_ng`, il est recommandé de faire une
[data migration](https://docs.djangoproject.com/en/3.1/howto/writing-migrations/#migrating-data-between-third-party-apps) [data migration](https://docs.djangoproject.com/en/3.2/howto/writing-migrations/#migrating-data-between-third-party-apps)
et d'appliquer la fonction `register_cas_account` sur tou⋅tes les et d'appliquer la fonction `register_cas_account` sur tou⋅tes les
utilisateurices. utilisateurices.

View file

@ -3,6 +3,7 @@ from urllib.parse import urlparse, urlunparse
from django.conf import settings from django.conf import settings
from django.contrib import auth from django.contrib import auth
from django.contrib.auth import views as auth_views from django.contrib.auth import views as auth_views
from django.contrib.auth.forms import PasswordResetForm
from django.contrib.messages.views import SuccessMessageMixin from django.contrib.messages.views import SuccessMessageMixin
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.shortcuts import redirect from django.shortcuts import redirect
@ -101,6 +102,9 @@ class PasswordResetView(SuccessMessageMixin, auth_views.PasswordResetView):
subject_template_name = "authens/pwd_reset_subject.txt" subject_template_name = "authens/pwd_reset_subject.txt"
success_url = reverse_lazy("authens:login") success_url = reverse_lazy("authens:login")
def get_form_class(self):
return getattr(settings, "AUTHENS_PASSWORD_RESET_FORM", PasswordResetForm)
success_message = _( success_message = _(
"Un email de réinitialisation vient d'être envoyé à l'adresse indiquée !" "Un email de réinitialisation vient d'être envoyé à l'adresse indiquée !"
) )