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})
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})
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})