Skip to content

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

@UpSnow

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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions