Example #1
0
def change(request, token,
           template_name='uaccounts/change.html',
           changed_template_name='uaccounts/changed.html'):
    """If confirmation code is valid, show the password change form
    or try to change the password.

    **context**
      - `form`: "change password" form
    """
    try:
        verification = verify_token(token, CHANGE_PASSWORD_EXPIRES)
    except VerificationError:
        return redirect('uaccounts:login')

    if not verification.email.verified:
        return redirect('uaccounts:login')

    user = verification.email.profile.user
    form = forms.ChangePasswordForm(user)

    if request.method == 'POST':
        form = forms.ChangePasswordForm(user, request.POST)
        if form.is_valid():
            form.save()
            verification.delete()
            return render(request, changed_template_name)

    return render(request, template_name, {'form': form})
Example #2
0
def verify(request, token, template_name='uaccounts/verified.html'):
    """Try to verify email address using given token."""
    try:
        verification = verify_token(token, VERIFICATION_EXPIRES)
    except VerificationError:
        return redirect('uaccounts:index')

    if verification.email.profile != request.user.profile:
        return redirect('uaccounts:index')

    verification.email.verified = True
    verification.email.save()

    verification.delete()
    return render(request, template_name)
Example #3
0
def activate(request, token, template_name='uaccounts/activated.html'):
    """Try to activate account using given token."""
    try:
        verification = verify_token(token, ACTIVATION_EXPIRES)
    except VerificationError:
        return redirect('uaccounts:login')

    if verification.email.profile != request.user.profile:
        return redirect('uaccounts:login')

    verification.email.profile.user.is_active = True
    verification.email.profile.user.save()

    verification.email.profile.pending = False
    verification.email.profile.save()

    verification.email.verified = True
    verification.email.save()

    verification.delete()
    logout(request)
    return render(request, template_name)