feat: bootstrap project
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# US11 - Ajustes de Navegação (Menu Entregas e Gestão)
|
||||
|
||||
**Como** Utilizador do RefoodOne
|
||||
**Quero** que o menu "Entregas" seja exibido diretamente na barra de navegação principal e que o menu "Gestão" (dropdown) seja visível apenas para Administradores (role `admin`)
|
||||
**Para** otimizar o acesso rápido dos voluntários e gestores de turno à funcionalidade de entregas, mantendo os painéis administrativos visíveis apenas para os administradores.
|
||||
|
||||
## Descrição do Fluxo
|
||||
Ao fazer login na aplicação:
|
||||
- Um utilizador com o perfil **Administrador (Admin)** visualiza a opção **Gestão** (que contém os submenus **Beneficiários** e **Turnos**) e, ao lado desta, a opção **Entregas** exposta diretamente.
|
||||
- Um utilizador com o perfil **Gestor de Turno** ou **Voluntário** visualiza apenas a opção **Entregas** diretamente exposta no cabeçalho principal. O menu **Gestão** fica ocultado para estes utilizadores.
|
||||
|
||||
## Critérios de Aceitação
|
||||
|
||||
### 1. Interface Gráfica (UI)
|
||||
- **Menu Entregas**: Deve ser um link principal exposto diretamente no cabeçalho de navegação (navbar), posicionado ao lado do menu Gestão para administradores.
|
||||
- **Menu Gestão (Dropdown)**:
|
||||
- Fica visível **apenas** para utilizadores com o perfil de administrador (`role === 'admin'`).
|
||||
- Passa a conter no seu submenu dropdown apenas as opções **Beneficiários** e **Turnos**.
|
||||
- **Idioma**: Toda a barra de navegação deve continuar a utilizar termos em PT-PT.
|
||||
|
||||
### 2. Comportamento e Regras de Negócio
|
||||
- Utilizadores com perfil `shift_manager` e `volunteer` não devem ter acesso visual ao menu Gestão.
|
||||
- A proteção de rotas no servidor (`hooks.server.ts`) deve continuar a garantir que apenas `admin` aceda a `/admin/beneficiarios`, e que apenas `admin` e `shift_manager` acedam a `/admin/turnos`.
|
||||
|
||||
### 3. Integração de Dados
|
||||
- O cabeçalho de navegação (`+layout.svelte`) lê o perfil de utilizador (`data.user.role`) a partir dos dados carregados do servidor para aplicar as regras de visibilidade.
|
||||
Reference in New Issue
Block a user