Exemple #1
0
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