Ejemplo n.º 1
0
def reset_password(request):
    def reset_password_is_valid(request, form):
        create_reset_password_email(form.get_user())
        messages.success(request, 'A recovery mail was sent to you.')
        return redirect('users:login')

    context = {'title': 'Reset Password', 'btn_title': 'Send Recovery Email'}

    return perform_prg(request, ResetPasswordForm, {},
                       'users/reset_password.html', context,
                       reset_password_is_valid)
Ejemplo n.º 2
0
def register(request):
    def register_is_valid(request, form):
        form.save()
        messages.success(
            request,
            'An activation mail was sent to you. Please activate your account before login.'
        )
        return redirect('users:login')

    return perform_prg(request, RegisterForm, {}, 'users/register.html',
                       {'title': 'Sign Up'}, register_is_valid)
Ejemplo n.º 3
0
def login(request):
    def login_is_valid(request, form):
        auth_login(request, form.get_user())
        url = request.GET.get('next', 'posts:home')

        if url == reverse('users:logout'):
            url = 'posts:home'

        return redirect(url)

    return perform_prg(request, LoginForm, {}, 'users/login.html',
                       {'title': 'Log In'}, login_is_valid)
Ejemplo n.º 4
0
def cancel_delete_account_view(request):
    if not request.user.delete_requested_at:
        messages.error(request, 'Account deletion not requested.')
        return redirect('users:account')

    def cancel_is_valid(request, form):
        form.save()
        messages.success(request, 'Account deletion cancelled successfully.')
        return redirect('users:account')

    return perform_prg(request, CancelDeleteAccountForm,
                       {'instance': request.user},
                       'users/cancel_delete_account.html',
                       {'title': 'Cancel Account Deletion'}, cancel_is_valid)
Ejemplo n.º 5
0
def reset_password_token(request, token):
    def get_user_from_token_():
        request.session['user-reset-password'] = get_user_from_token(
            token, 'reset-password', settings.RESET_PASSWORD_EXPIRATION_TIME)

    if not load_timed_token(request, get_user_from_token_):
        return redirect('users:login')

    def reset_password_token_is_valid(request, form):
        form.save()
        messages.success(request, 'Password successfully reset.')
        return redirect('users:login')

    user = request.session.pop('user-reset-password')
    return perform_prg(request, ResetPasswordTokenForm, {'user': user},
                       'users/reset_password_token.html',
                       {'title': 'Reset Password'},
                       reset_password_token_is_valid)
Ejemplo n.º 6
0
def account(request):
    def account_is_valid(request, form):
        form.save()
        messages.success(request, 'Changes saved.')

        if form.email_changed:
            messages.info(
                request,
                'A confirmation mail has been sent to the new email address. Your email address will only change after confirmation.'
            )

        return redirect('posts:home')

    context = {
        'title': 'Account',
        'max_posts': settings.MIN_MAX_CONSECUTIVE_POSTS
    }

    return perform_prg(request, AccountForm, {'instance': request.user},
                       'users/account.html', context, account_is_valid)
Ejemplo n.º 7
0
def delete_account(request):
    if request.user.delete_requested_at:
        messages.error(request, 'Account deletion already requested.')
        return redirect('users:account')

    def delete_is_valid(request, form):
        form.save()
        messages.success(
            request,
            'Account deletion requested successfully. A detailed email was sent to you.'
        )
        return redirect('users:account')

    context_data = {
        'title': 'Delete Account',
        'hours': settings.ACCOUNT_DELETION_INTERVAL // 60 // 60
    }

    return perform_prg(request, DeleteAccountForm, {'instance': request.user},
                       'users/delete_account.html', context_data,
                       delete_is_valid)