1
resposta

Usuário não consegue excluir sua conta

Aprendemos a fazer login e logout, porém não demos a opção do usuário poder excluir seu usuário, levando em consideração a LGPD acredito ser importante aprendermos isso, sei que podemos excluir no /admin porém o usuário não consegue deletar o usuário dele. caso alguém tenha conseguindo implantar essa funcionalidade no projeto, por favor compartilhar.

1 resposta

Olá, Clovis! Entendo sua preocupação com a LGPD e a necessidade de permitir que os usuários excluam suas próprias contas. Para adicionar essa funcionalidade, você pode criar uma nova rota e uma nova função de view, semelhante ao que fizemos para o logout.

Aqui está um exemplo de como você pode fazer isso:

  1. Primeiro, você precisa criar uma nova rota em urls.py:
from django.urls import path
from usuarios.views import login, cadastro, logout, excluir_conta  # Importe a nova função

urlpatterns = [
    path('login', login, name='login'),
    path('cadastro', cadastro, name='cadastro'),
    path('logout', logout, name='logout'),
    path('excluir_conta', excluir_conta, name='excluir_conta'),  # Adicione a nova rota
]
  1. Em seguida, você precisa criar a função excluir_conta em views.py:
from django.contrib import messages
from django.contrib.auth import get_user_model
from django.shortcuts import redirect

def excluir_conta(request):
    user = get_user_model()
    if request.method == 'POST':
        user.objects.filter(id=request.user.id).delete()
        messages.success(request, "Conta excluída com sucesso!")
        return redirect('login')
  1. Por fim, você precisa adicionar um botão ou um link em seu template para permitir que o usuário acesse essa rota. Aqui está um exemplo de como você pode fazer isso em login.html:
<a href="{% url 'excluir_conta' %}">Excluir Conta</a>

Lembre-se de que esta é uma operação sensível e, em uma aplicação real, você provavelmente gostaria de pedir ao usuário para confirmar sua ação antes de excluir a conta.


Outro ponto pensando mais em MVP e produto, um caminho interessante seria deixar claro para o usuário em algum lugar na plataforma sobre a possibilidade de exclusão da conta sendo feita após enviar um e-mail para "lgpd@empresa.com.br" por exemplo. Neste caso, ainda fazendo sentido com a LGPD.

Espero ter ajudado e bons estudos!