def activation(request, id_base36, token): """Activation d'un chercheur""" id = base36_to_int(id_base36) chercheur = get_object_or_404(Chercheur.objects.all(), id=id) if token == chercheur.activation_token(): validlink = True if request.method == 'POST': form = SetPasswordForm(request.POST) if form.is_valid(): password = form.cleaned_data['password'] email = chercheur.courriel chercheur.actif = True user = get_django_user_for_email(email) user.set_password(password) user.save() chercheur.user = user chercheur.save() # Auto-login auth_login( request, authenticate(username=email, password=password) ) return redirect('annuaire.views.perso') else: form = SetPasswordForm() else: form = None validlink = False return render(request, 'activation.html', { 'form': form, 'validlink': validlink })
def authenticate(self, username=None, password=None): try: personne = Chercheur.objects.get(courriel=username, actif=True) except Chercheur.DoesNotExist: return None user = get_django_user_for_email(username) if settings.AUTH_PASSWORD_REQUIRED or user.check_password(password): return user