43 lines
2.8 KiB
Markdown
43 lines
2.8 KiB
Markdown
# 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`.
|