feat: bootstrap project
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user