groupe-meditation/docs/93_MULTI_GROUPE.md

2.5 KiB

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é.