Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
| Numéro du ticket | Titre du ticket | |------------------|-----------------| | | | ## Description de la PR ## Modification du .env ## Check list - [ ] Pas de régression - [ ] TU/TI/TF rédigée - [ ] TU/TI/TF OK - [ ] CHANGELOG modifié Reviewed-on: #9 Co-authored-by: tristan <tristan@yuno.malio.fr> Co-committed-by: tristan <tristan@yuno.malio.fr>
58 lines
2.3 KiB
Markdown
58 lines
2.3 KiB
Markdown
# Journal des actions (Audit Log)
|
|
|
|
## Objectif
|
|
|
|
Tracer les actions utilisateurs pour diagnostiquer rapidement les problèmes de calcul signalés.
|
|
Quand un utilisateur signale une incohérence dans ses heures, RTT ou congés, le journal permet de voir
|
|
exactement ce qui a été modifié, par qui, et quand.
|
|
|
|
## Accès
|
|
|
|
- **Rôle requis** : `ROLE_SUPER_ADMIN` (rôle caché, non visible dans l'interface de gestion des utilisateurs)
|
|
- **Ajout du rôle** : directement en base de données
|
|
```sql
|
|
UPDATE users SET roles = '["ROLE_ADMIN","ROLE_SUPER_ADMIN"]' WHERE username = 'xxx';
|
|
```
|
|
- **Page** : `/audit-logs` (lien "Journal" dans la sidebar, visible uniquement avec le rôle)
|
|
|
|
## Actions tracées
|
|
|
|
| Processor | Entité | Actions |
|
|
|---|---|---|
|
|
| `AbsenceWriteProcessor` | Absence | create, delete |
|
|
| `WorkHourBulkUpsertProcessor` | WorkHour | create, update, delete |
|
|
| `WorkHourSiteValidationProcessor` | WorkHour | site_validate |
|
|
| `WorkHourBulkValidationProcessor` | WorkHour | validate |
|
|
| `WorkHourBulkSiteValidationProcessor` | WorkHour | site_validate |
|
|
| `EmployeeWriteProcessor` | Employee | create, update (changement contrat) |
|
|
| `ContractSuspensionWriteProcessor` | ContractSuspension | create, update |
|
|
| `EmployeeRttPaymentProcessor` | EmployeeRttPayment | update |
|
|
| `EmployeeFractionedDaysProcessor` | EmployeeLeaveBalance | update |
|
|
|
|
## Données stockées
|
|
|
|
Chaque entrée contient :
|
|
- **employee** : l'employé concerné (FK, nullable)
|
|
- **username** : l'utilisateur qui a effectué l'action
|
|
- **action** : type d'action (create, update, delete, validate, site_validate)
|
|
- **entityType** : type d'entité (work_hour, absence, employee, etc.)
|
|
- **description** : description lisible en français
|
|
- **changes** : diff JSON `{old: {...}, new: {...}}` avec les anciennes/nouvelles valeurs
|
|
- **affectedDate** : date de travail ou début d'absence (pour filtrage par période)
|
|
- **createdAt** : horodatage de l'action
|
|
|
|
## Filtres disponibles
|
|
|
|
- Par employé
|
|
- Par plage de dates (date affectée)
|
|
- Par type d'entité
|
|
|
|
## Pagination
|
|
|
|
Les résultats sont paginés par 50 entrées. L'API retourne `{items, total, page, perPage}` et accepte un query param `page`.
|
|
|
|
## Convention
|
|
|
|
Tout nouveau processor traitant des entités impactant les calculs (heures, absences, contrats, RTT)
|
|
doit intégrer le service `AuditLogger` et logger les actions create/update/delete.
|