Gestão de empregados
A entidade Employee (src/Entity/Organization/Employee) é o modelo de utilizador do sistema Doggy e, ao mesmo tempo, o principal sujeito de autenticação do Symfony Security. A gestão é feita através do EmployeeController e do EmployeeApiController.
Visão geral
O módulo de gestão de empregados cobre todo o ciclo de vida:
- Perspetiva de RH: gestão de lista de efetivos, integração de novos contratados, análise estatística
- Perspetiva de TI: abertura de contas, atribuição de permissões, configuração de Passkeys
- Perspetiva de gestor: gestão de equipas, relações de reporte, mobilização de pessoal
Estrutura da entidade
Employee é a entidade App\Entity\Organization\Employee e também o fornecedor de utilizadores de segurança:
yaml
# config/packages/security.yaml
providers:
app_user_provider:
entity:
class: App\Entity\Organization\EmployeeCampos-chave:
isPasswordModifiedByUser: marca se a palavra-passe inicial já foi alterada- Relação um-para-muitos com
WebauthnCredential(passkeys) - O avatar é gerido através do
AvatarController
Funcionalidades principais
Lista de efetivos
- Interface de administração:
templates/employee/list.html.twig - Página de detalhes:
templates/employee/show.html.twig - Página de edição:
templates/employee/edit.html.twig - Painel de edição:
templates/employee/edit_drawer.html.twig - Gestão de avatar:
templates/employee/_avatar_modal.html.twig
API
A gestão de empregados fornece uma API RESTful através do EmployeeApiController:
http
GET /api/admin/employees # Lista de empregados
POST /api/admin/employees # Criar empregado
GET /api/admin/employees/{id} # Detalhes do empregado
PUT /api/admin/employees/{id} # Atualizar empregado
DELETE /api/admin/employees/{id} # Eliminar empregadoProcesso de integração
No primeiro início de sessão, o sistema deteta automaticamente o estado do utilizador através do UserSetupListener:
- Verifica se a palavra-passe já foi alterada (
isPasswordModifiedByUser) - Verifica se já foi registado um Passkey
- Se algum passo estiver incompleto, redireciona para a página de configuração
Configurações do utilizador
php
// src/EventListener/UserSetupListener.php
// Lista branca de rotas de permissão: app_user_setup, app_logout
// As rotas WebAuthn e de início de sessão são sempre acessíveis
// Redireciona para a página de configuração se a palavra-passe não foi alterada ou não há PasskeyEntradas de gestão
- Lista de empregados:
App\Controller\EmployeeController - API:
App\Controller\Api\EmployeeApiController - Avatar:
App\Controller\Api\AvatarController