2.8 KiB
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:
- O utilizador encontra um novo submenu Utilizadores no menu dropdown principal Gestão.
- Ao selecionar Utilizadores, é direcionado para o ecrã de listagem de utilizadores.
- 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.
- 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).
- 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.
- Tabela com colunas: Nome (
- 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)
- Administrador (
- 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
adminpodem 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
usersda base de dados. - Controlo de Acesso: Bloqueio de acesso a nível de rotas no servidor (
hooks.server.tsou páginas locais) para utilizadores que não tenham perfiladmin.