Anomalie #75

Problèmes de cohérence dans les assignations de rôles

Added by Grégory MARIGOT - TEICEE almost 13 years ago. Updated almost 13 years ago.

Status:Fermé Start date:11/30/2010
Priority:Normal Due date:
Assignee:Grégory MARIGOT - TEICEE % Done:

100%

Category:-
Target version:EpnAdmin-CTN 1.1.3
Version ProxyEPN:1.0

Description

La BDD EpnAdmin stocke les rôles des contacts dans 3 tables :

  • sf_guard_user_group_structure_group : pour les liens anim/directeur sur un GEPN
  • sf_guard_user_group_structure : pour les liens anim/directeur sur un EPN
  • sf_guard_user_group : pour le lien générique anim/directeur d'un contact

2 problèmes apparaissent dans la version d'origine d'EpnAdmin :

  • Les deux tables enregistrant les triplets contact/groupe/structure ne définissent pas de clé primaire sur ce triplet. En conséquence, des doublons sont possibles : un même contact peut être assigné plusieurs fois sur la même structure avec le même rôle.
    Rien de vraiment génant, à part le fait que ce n'est pas très propre et un peu déstabilisant de pouvoir avoir plusieurs fois le même nom dans la liste des animateurs ou directeurs d'un EPN/GEPN.
  • La dernière table est utilisée essentiellement pour déterminer le profil type d'un contact. Dès que celui-ci est déclaré animateur ou directeur d'un EPN/GEPN, le contact se trouve inscrit dans le groupe correspondant. Mais en cas de suppression d'un rôle sur une structure, ce lien est supprimé alors qu'il n'est pas forcément obsolète !
    Par exemple, un contact est animateur sur 2 EPN, il a bien le profil animateur. Mais si on supprime son rôle sur un seul des deux EPN, son profil devient simple utilisateur alors qu'il devrait rester animateur.

Associated revisions

Revision 300
Added by Grégory MARIGOT - TEICEE almost 13 years ago

FIX #75: Contrôle avant suppression d'un lien user-group qu'aucun rôle du genre ne subsiste
NEW #74: Enregistrement des fiches LDAP sur mise à jour des rôles animateur/directeur et du profil type

Revision 302
Added by Grégory MARIGOT - TEICEE almost 13 years ago

FIX #75: Correction apportée à la r300

History

Updated by Grégory MARIGOT - TEICEE almost 13 years ago

  • Status changed from Nouveau to Résolu
  • % Done changed from 0 to 100

Modifications publiées sur le svn (r300) :

  • Pour éviter les doublons en BDD dans les assignations de rôles, la structure des tables doivent être modifiées comme suit pour leur attribuer des clés primaires. A noter que si des doublons sont présents, il devront être manuellement nettoyer des tables avant de pouvoir appliquer cette modification.
    Modification à apporter sur la base de données :
    ALTER TABLE `sf_guard_user_group_structure` ADD PRIMARY KEY ( `user_id` , `group_id` , `structure_id` ) ;
    ALTER TABLE `sf_guard_user_group_structure_group` ADD PRIMARY KEY ( `user_id` , `group_id` , `structure_group_id` ) ;
  • Un contrôle avant suppression d'un lien user-group a été ajouté, afin de vérifier qu'aucun rôle du genre ne subsiste entre le contact et une structure (EPN ou GEPN). Ainsi le profil type d'un contact est mis à jour correctement.

Au passage, les méthodes retrieveByUser() sur sfGuardUserGroupStructurePeer et sfGuardUserGroupStructureGroupPeer sont modifiées pour ne retourner que le 1er résultat, puisqu'il existe des méthodes retrieveAllByUser() pour retourner la liste.

Le template pour l'affichage des rôles sur les fiches contacts a été corrigé en conséquence, de plus il gère aussi une liste pour les rôles sur GEPN même si ce cas n'arrive pas en tant normal.

Updated by Grégory MARIGOT - TEICEE almost 13 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF