Aller au contenu principal

Module Affectations (user_assignments)

Le module Affectations gère le lien temporel entre un responsable et une org_unit, avec un rôle de gestion et une fonction.

Modèle

Table user_assignments :

ChampSens
user_idLe responsable affecté
org_unit_idLa structure d'affectation
management_role_codeADMIN_UNITE / ADMIN_GROUPE / ADMIN_DISTRICT / ADMIN_REGION / ADMIN_NATION
function_type_idLe type de fonction (Chef, Adjoint, Secrétaire, Trésorier…)
is_primaryVrai = c'est l'ancrage d'origine du responsable (1 seul actif par user)
start_dateDate de début
end_dateDate de fin (NULL si encore actif)
is_activeRecalcul pratique pour les requêtes

Doctrine — Relations temporelles (R3)

Quand un responsable change d'affectation, on ferme son ancienne (end_date = jour J) et on ouvre une nouvelle. Jamais d'UPDATE.

L'historique est ainsi auditable : on sait précisément qui était où et quand.

Affectation primaire vs secondaire

  • Primaire : l'ancrage statutaire du responsable. C'est ce qui détermine son rôle ACTIF et donc ses permissions (mig 0199).
  • Secondaire : affectation supplémentaire dans une autre structure (ex: un Chef de Groupe qui anime aussi une unité). Visible dans les filtres de la structure secondaire.

Accéder au module

Sidebar → AdministrationAffectations.

Liste affectations — placeholder

Créer une affectation

Bouton Nouvelle affectation :

  1. Responsable : sélection parmi les comptes du périmètre
  2. Structure : org_unit cible (cascade comme dans Responsables)
  3. Rôle de gestion : ADMIN_X correspondant au niveau de la structure
  4. Fonction : Chef, Adjoint, Secrétaire…
  5. Date début : aujourd'hui par défaut
  6. Primary ? : si oui, l'ancienne affectation primaire est fermée

Dialog nouvelle affectation — placeholder

Fermer une affectation

Édite la ligne et renseigne end_date. Le responsable conserve son compte mais perd ses droits sur cette structure à partir de la date renseignée.

Set primary

Bouton Marquer comme primaire (sur une affectation secondaire). Ouvre une boîte de dialog qui :

  1. Ferme l'ancienne primaire (end_date = aujourd'hui)
  2. Promote la secondaire choisie en primaire
  3. Audit l'opération (mig 0219)

Permissions (mig 0212)

Tu peux gérer les affectations dans ton périmètre uniquement. Les gates RBAC sont contractuels (can_assignments_*).

Doctrine

  • R3 : pas d'UPDATE sur les affectations, fermer + ouvrir
  • R4 : pas de DELETE
  • R5 : le rôle ACTIF gouverne les permissions (mig 0199)

Voir aussi