88 lines
2.5 KiB
Markdown
88 lines
2.5 KiB
Markdown
|
|
# Isolation multi-groupe
|
||
|
|
|
||
|
|
Statut: référence technique
|
||
|
|
Public: mainteneurs, sysadmin
|
||
|
|
Dernière révision: 2026-06-01
|
||
|
|
|
||
|
|
L'application peut servir plusieurs groupes sous une même instance. Les groupes ne doivent pas avoir de liens d'interdépendance métier.
|
||
|
|
|
||
|
|
## Principe
|
||
|
|
|
||
|
|
Le groupe courant est déterminé par le membre authentifié et le `groupe_id` dans le jeton. Une requête authentifiée ne doit lire ou modifier que les données de ce groupe.
|
||
|
|
|
||
|
|
## Page publique
|
||
|
|
|
||
|
|
La page de connexion liste les groupes sous forme de tuiles. Chaque tuile affiche l'horaire et les coordonnées du groupe, puis le formulaire de connexion.
|
||
|
|
|
||
|
|
Le groupe de démonstration est toujours disponible sur une installation vanille.
|
||
|
|
|
||
|
|
## Données de groupe
|
||
|
|
|
||
|
|
Doivent être isolés par groupe:
|
||
|
|
|
||
|
|
- membres;
|
||
|
|
- invitations;
|
||
|
|
- postes;
|
||
|
|
- affectations;
|
||
|
|
- candidatures;
|
||
|
|
- rotations;
|
||
|
|
- rencontres;
|
||
|
|
- assemblées;
|
||
|
|
- présences;
|
||
|
|
- PV;
|
||
|
|
- propositions et décisions;
|
||
|
|
- collectes;
|
||
|
|
- dépenses;
|
||
|
|
- opérations bancaires;
|
||
|
|
- transactions comptables;
|
||
|
|
- réserves;
|
||
|
|
- mouvements de réserves;
|
||
|
|
- destinataires;
|
||
|
|
- contributions;
|
||
|
|
- littérature;
|
||
|
|
- ventes;
|
||
|
|
- jetons;
|
||
|
|
- événements;
|
||
|
|
- rapports;
|
||
|
|
- journal;
|
||
|
|
- historique.
|
||
|
|
|
||
|
|
## Tables sans `groupe_id` direct
|
||
|
|
|
||
|
|
Une table sans `groupe_id` direct est acceptable seulement si son parent isole strictement le groupe. Exemple: une présence peut être bornée par sa réunion.
|
||
|
|
|
||
|
|
## Routes
|
||
|
|
|
||
|
|
Toute route qui reçoit un ID depuis le client doit:
|
||
|
|
|
||
|
|
1. charger l'objet;
|
||
|
|
2. vérifier son appartenance au groupe courant;
|
||
|
|
3. refuser si l'objet n'appartient pas au groupe.
|
||
|
|
|
||
|
|
## Permissions
|
||
|
|
|
||
|
|
Les permissions de modules sont calculées depuis les postes du groupe courant. Un poste d'un groupe ne peut pas accorder d'accès dans un autre groupe.
|
||
|
|
|
||
|
|
## Sysadmin
|
||
|
|
|
||
|
|
Sysadmin est transversal pour l'administration technique. Ses actions doivent être limitées aux opérations prévues:
|
||
|
|
|
||
|
|
- gérer les groupes;
|
||
|
|
- réinitialiser un groupe;
|
||
|
|
- réinitialiser la démonstration;
|
||
|
|
- impersonifier.
|
||
|
|
|
||
|
|
## Démonstration
|
||
|
|
|
||
|
|
`Groupe Démonstration` est protégé et toujours placé en bas de la liste. Le bouton `Réinit` recrée ses données fictives sans toucher aux autres groupes.
|
||
|
|
|
||
|
|
## Tests à refaire lors de changements multi-groupe
|
||
|
|
|
||
|
|
- Créer deux groupes.
|
||
|
|
- Créer des membres dans chaque groupe.
|
||
|
|
- Vérifier que les listes de membres ne se croisent pas.
|
||
|
|
- Vérifier que les postes et permissions ne se croisent pas.
|
||
|
|
- Vérifier les rencontres, assemblées, finances, rapports et journal par groupe.
|
||
|
|
- Vérifier que l'impersonification reste dans le groupe du membre ciblé.
|
||
|
|
|