Files
Refood-One/docs/user-stories/00-Generic/US13-gestao-utilizadores.md
T
2026-05-31 20:22:50 +01:00

2.8 KiB

US13 - Gestão de Utilizadores

Como Administrador do RefoodOne Quero poder visualizar e gerir as contas de utilizadores (voluntários, gestores de turno e administradores) do sistema Para controlar os perfis de acesso e atualizar as credenciais dos utilizadores de forma segura.

Descrição do Fluxo

Ao aceder ao sistema como administrador:

  1. O utilizador encontra um novo submenu Utilizadores no menu dropdown principal Gestão.
  2. Ao selecionar Utilizadores, é direcionado para o ecrã de listagem de utilizadores.
  3. No ecrã de listagem, pode ver uma tabela contendo o Nome de Utilizador e o Perfil (Role) de cada conta registada. Cada linha tem uma opção/link para aceder ao detalhe do utilizador.
  4. No ecrã de detalhe de um utilizador, o administrador pode:
    • Alterar o Nome de Utilizador.
    • Alterar o Perfil (selecionando numa lista dropdown as opções: Administrador, Gestor de Turno, Voluntário).
    • Definir uma nova password na secção correspondente, inserindo a nova password e confirmando a mesma num segundo campo (não sendo necessária a password antiga).
  5. O administrador clica em Guardar para persistir as alterações na base de dados.

Critérios de Aceitação

1. Interface Gráfica (UI)

  • Menu Gestão: Adicionar a ligação para "Utilizadores" no menu dropdown do cabeçalho principal.
  • Ecrã de Listagem:
    • Tabela com colunas: Nome (username) e Perfil (role).
    • Botão ou ligação para editar o detalhe em cada linha de utilizador.
  • Ecrã de Detalhe:
    • Campo de texto para o Nome de Utilizador.
    • Dropdown com as roles suportadas em PT-PT:
      • Administrador (admin)
      • Gestor de Turno (shift_manager)
      • Voluntário (volunteer)
    • Secção "Alterar Password" contendo dois campos de texto/password: Nova Password e Confirmar Nova Password.
    • Mensagens de erro/sucesso claras em português.

2. Comportamento e Regras de Negócio

  • Apenas utilizadores com a role admin podem aceder a estes ecrãs (tanto a listagem como o detalhe).
  • Se a secção de password for preenchida, o sistema deve validar se as duas passwords coincidem e se cumprem requisitos mínimos de segurança (ex: tamanho mínimo).
  • Se a secção de password for deixada em branco, o utilizador é guardado mantendo a password antiga sem alterações.
  • O ecrã de detalhe também deve permitir criar um utilizador novo (ou ter um fluxo correspondente) com os mesmos campos.

3. Integração de Dados / Segurança

  • Segurança: As novas passwords devem ser encriptadas de forma segura (ex: hashing) antes de guardar na tabela users da base de dados.
  • Controlo de Acesso: Bloqueio de acesso a nível de rotas no servidor (hooks.server.ts ou páginas locais) para utilizadores que não tenham perfil admin.