Skip to content

feat: adicionar funcionalidade para editar e excluir o próprio perfil de usuário #56

Description

@UpSnow

Requisito (Nova funcionalidade)

Classificação

  1. Backend (EducAPI)
  • Endpoint de Edição (PUT /usuarios/me ou similar):

    • Permitir a atualização de dados permitidos (ex: nome, foto de perfil).

    • Validar se o usuário que está tentando editar é o mesmo dono do token (via contexto de segurança/JWT).

  • Endpoint de Exclusão (DELETE /usuarios/me ou similar):

    • Implementar a exclusão lógica ou física do usuário.

    • Atenção: Garantir a consistência dos dados. O que acontece com os conteúdos criados por esse usuário (desafios, turmas, mídias no MinIO)? Eles devem ser deletados em cascata ou anonimizados?

  1. Frontend (AlfabetizaHub / EducAPI Manager)
  • Interface de Configurações:

    • Criar uma tela ou modal de "Meu Perfil" acessível pelo menu superior/sidebar.
  • Formulário de Edição:

    • Campos para atualizar nome e upload de nova foto de perfil (integrado com o fluxo de imagem/URL).
  • Ação de Exclusão de Conta:

    • Adicionar um botão "Excluir Conta" (em destaque visual negativo/vermelho).

    • Modal de Confirmação: Exibir um aviso crítico perguntando se o usuário tem certeza, exigindo uma confirmação explícita (ex: digitar a senha ou clicar em "Confirmar Exclusão") para evitar cliques acidentais.

Descrição

Atualmente, os usuários do EducAPI e do AlfabetizaHub não possuem autonomia para gerenciar suas próprias contas diretamente pela interface. Para garantir uma boa experiência e conformidade com privacidade de dados, precisamos implementar uma área de "Configurações de Conta" ou "Meu Perfil" onde o usuário autenticado possa atualizar seus dados ou deletar sua conta permanentemente.

Regras

Um usuário não pode editar ou excluir a conta de outro usuário (bloqueio rigoroso via Token JWT no backend).

O upload de imagem na edição de perfil deve funcionar corretamente com o MinIO.

Após excluir a conta, o usuário deve ser deslogado imediatamente (logout), o token deve ser limpo do navegador e ele deve ser redirecionado para a tela de login.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions