diff --git a/config/packages/security.yaml b/config/packages/security.yaml index 17f38d2..647c890 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -19,6 +19,7 @@ security: pattern: ^/login_check stateless: true provider: app_user_provider + user_checker: App\Security\UserChecker json_login: check_path: /login_check username_path: username @@ -29,6 +30,7 @@ security: pattern: ^/api stateless: true provider: app_user_provider + user_checker: App\Security\UserChecker jwt: ~ logout: path: /api/logout diff --git a/doc/functional-rules.md b/doc/functional-rules.md index bdda7fc..cd9fa5a 100644 --- a/doc/functional-rules.md +++ b/doc/functional-rules.md @@ -372,7 +372,26 @@ Tous les filtres checkbox sont cochés par défaut à l'ouverture du drawer. - Justificatif Montant : upload via `/mileage_allowances/{id}/amount-receipt`, téléchargement via GET même URL - La suppression d'un frais supprime les deux fichiers justificatifs du disque -## 13) Notifications +## 13) Observations + +- Onglet "Observation" sur la fiche employé (icône `mdi:note-text-outline`) +- Entité `Observation` (table `observations`) +- Champs: + - `month` (mois, obligatoire) + - `content` (texte d'observation, obligatoire) +- Contrainte: une seule observation par mois par employé (unique sur `employee_id + month`) +- Tableau: colonnes Mois | Observation +- Drawer avec champs mois (`type="month"`) et textarea "Observation" +- CRUD standard: création, modification, suppression avec confirmation + +## 14) Verrouillage utilisateur + +- Champ `isLocked` (boolean, default false) sur l'entité `User` +- Un admin peut verrouiller/déverrouiller un utilisateur depuis la page Utilisateurs (checkbox dans le drawer) +- Un utilisateur verrouillé ne peut plus se connecter (vérification via `UserChecker` sur les firewalls `login` et `api`) +- Colonne "Statut" dans le tableau utilisateurs avec label "Actif" (vert) ou "Verrouillé" (rouge) + +## 15) Notifications - Icône cloche en topbar: - badge = nombre de notifications non lues diff --git a/frontend/components/employees/ObservationTab.vue b/frontend/components/employees/ObservationTab.vue new file mode 100644 index 0000000..87ca1b1 --- /dev/null +++ b/frontend/components/employees/ObservationTab.vue @@ -0,0 +1,187 @@ +