Example #1
0
def delete_account_view(request):
    if request.method == 'POST':  # if form submitted...
        form = DeleteAccountForm(request.POST)
        if form.is_valid():
            user = request.user

            #delete points
            Points.objects.filter(user=user).delete()

            #delete badges
            Award.objects.filter(user=user).delete()

            #delete trackers
            Tracker.objects.filter(user=user).delete()

            #delete quiz attempts
            QuizAttemptResponse.objects.filter(quizattempt__user=user).delete()
            QuizAttempt.objects.filter(user=user).delete()

            #delete profile
            UserProfile.objects.filter(user=user).delete()

            #delete api key
            ApiKey.objects.filter(user=user).delete()

            #logout and delete user
            User.objects.get(pk=user.id).delete()

            #redirect
            return HttpResponseRedirect(reverse('profile_delete_account_complete'))  # Redirect after POST
    else:
        form = DeleteAccountForm(initial={'username': request.user.username})  # An unbound form

    return render(request, 'oppia/profile/delete_account.html',
                  {'form': form})
Example #2
0
def delete_account_view(request, user_id):
    if request.method == 'POST':  # if form submitted...
        form = DeleteAccountForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data.get("username")
            password = form.cleaned_data.get("password")
            user = authenticate(username=username, password=password)
            posted_user = User.objects.get(pk=user_id)

            if user.is_superuser or user.id == user_id:
                delete_user = posted_user
            else:
                raise PermissionDenied

            # delete points
            Points.objects.filter(user=delete_user).delete()

            # delete badges
            Award.objects.filter(user=delete_user).delete()

            # delete trackers
            Tracker.objects.filter(user=delete_user).delete()

            # delete quiz attempts
            QuizAttemptResponse.objects \
                .filter(quizattempt__user=delete_user).delete()
            QuizAttempt.objects.filter(user=delete_user).delete()

            # delete profile
            UserProfile.objects.filter(user=delete_user).delete()

            # delete api key
            ApiKey.objects.filter(user=delete_user).delete()

            # logout and delete user
            User.objects.get(pk=delete_user.id).delete()

            # redirect
            return HttpResponseRedirect(
                reverse('profile:delete_complete'))
    else:
        form = DeleteAccountForm(initial={'username': request.user.username})

    return render(request, 'profile/delete_account.html',
                  {'form': form})
Example #3
0
def delete_account_view(request, user_id):
    if request.method == 'POST':  # if form submitted...
        form = DeleteAccountForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data.get("username")
            password = form.cleaned_data.get("password")
            user = authenticate(username=username, password=password)
            posted_user = User.objects.get(pk=user_id)

            if user.is_superuser or user.id == user_id:
                delete_user = posted_user
            else:
                raise PermissionDenied

            delete_user_data(delete_user)

            # redirect
            return HttpResponseRedirect(reverse('profile:delete_complete'))
    else:
        form = DeleteAccountForm(initial={'username': request.user.username})

    return render(request, 'profile/delete_account.html', {'form': form})