Deux lots regroupés sur la branche feat/absence-management. Suppression complète du portail client : - retire ROLE_CLIENT (security.yaml) ; User::getRoles() ajoute toujours ROLE_USER - supprime l'entité ClientTicket (+ repo, states, relations), User.client et User.allowedProjects, NotificationService, ProjectAllowedExtension, le bloc ROLE_CLIENT de MailAccessChecker - front : pages /portal, layout portal, composants client-ticket/, AdminClientTicketTab, services/dto/i18n/docs associés - fixtures : retire les users client-liot / client-acme - migration Version20260522110000 (drop client_ticket, user_allowed_projects, colonnes liées ; task_document.task_id -> NOT NULL) - tests : retire les cas obsolètes testant le blocage des clients sur le mail Module gestion des absences (WIP) : - entités / migrations (Version20260521160000, Version20260522090000) - pages absences.vue / team-absences.vue, composants frontend/components/absence/ - services front, AccrueLeaveCommand, PublicHolidayController Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
74 lines
2.5 KiB
Markdown
74 lines
2.5 KiB
Markdown
# Administration
|
|
|
|
> 🛡️ Section visible uniquement par les utilisateurs **ROLE_ADMIN**.
|
|
|
|
L'admin (`/admin`) est divisé en plusieurs onglets, chacun gérant une ressource globale ou une intégration.
|
|
|
|
## Onglet *Clients*
|
|
|
|
- Liste des clients (entreprise / organisation)
|
|
- Champs : nom, email, téléphone, adresse
|
|
- Lier un client à des projets
|
|
|
|
## Onglet *Workflows*
|
|
|
|
⭐ **Nouveau** — remplace l'ancien onglet *Statuts*.
|
|
|
|
- Lister les workflows existants
|
|
- **Créer un workflow** : nom, isDefault (un seul à la fois), liste de statuts éditables inline
|
|
- Chaque statut : libellé, couleur, position, **catégorie** (5 valeurs canoniques), isFinal
|
|
- **Éditer** un workflow modifie les statuts (sync intelligent : create / update / delete par diff)
|
|
|
|
> ⚠️ Supprimer un workflow lié à un projet renvoie une erreur **409**. Réassigne d'abord les projets.
|
|
|
|
## Onglet *Efforts*
|
|
|
|
- Tailles d'effort (S, M, L, XL, XXL)
|
|
- Globales (partagées entre tous les projets)
|
|
|
|
## Onglet *Priorités*
|
|
|
|
- Niveaux de priorité (Basse, Moyenne, Haute) + couleur
|
|
- Une priorité "Haute" affiche un drapeau rouge `mdi:flag-variant` sur la card
|
|
|
|
## Onglet *Tags*
|
|
|
|
- Tags globaux (tâches **et** time entries)
|
|
- Couleur personnalisable
|
|
- Pas de hiérarchie (flat list)
|
|
|
|
## Onglet *Utilisateurs*
|
|
|
|
- Créer / éditer / désactiver
|
|
- Rôles : `ROLE_ADMIN`, `ROLE_USER`
|
|
- Reset password depuis l'admin
|
|
|
|
## Onglet *Gitea*
|
|
|
|
- URL serveur + token API
|
|
- Lier un projet à un repo : `giteaOwner` + `giteaRepo`
|
|
- Active les fonctionnalités branches / PRs sur les tâches
|
|
|
|
## Onglet *BookStack*
|
|
|
|
- URL + token API
|
|
- Lier un projet à un **shelf** BookStack (`bookstackShelfId`)
|
|
- Les tâches peuvent être liées à des pages BookStack (cf. `TaskBookStackLink`)
|
|
|
|
## Onglet *Zimbra*
|
|
|
|
- URL serveur + credentials (chiffrés via libsodium)
|
|
- Configure le calendrier CalDav par défaut
|
|
- Test de connexion intégré
|
|
- Active la **sync calendrier** sur les tâches planifiées
|
|
|
|
## Onglet *Mail*
|
|
|
|
Configure la **boîte mail partagée** (OVH) lue dans la section *Messagerie*.
|
|
|
|
- **Réception (IMAP)** : hôte, port (993 par défaut), chiffrement (SSL / TLS / aucun)
|
|
- **Envoi (SMTP)** : hôte, port (465 par défaut), chiffrement
|
|
- **Identifiants** : nom d'utilisateur + mot de passe (chiffré côté serveur, jamais réaffiché — un indicateur signale qu'un mot de passe est déjà enregistré), et chemin du dossier *Envoyés*
|
|
- **Toggle `enabled`** : active la messagerie
|
|
- **Test de connexion** intégré (vérifie l'accès IMAP et compte les dossiers)
|