-
Bug
-
Résolution: Résolu
-
Majeur
-
6.07.33
-
Aucune
Hello,
Contexte
Un client souhaite autoriser la modification d'une fiche à des personnes membres de plusieurs structures. Il renseigne donc plusieurs structures dans le champ Autre(s) Structure(s).
Anomalie
Un utilisateur rattaché à l'une des structures ne peut pas, en apparence, modifier la structure : le bouton modifier n'est pas présent dans la liste des structures.
Cependant, si l'utilisateur possède l'URL de modification de la fiche, il peut la modifier.
Analyse
Le même code est exécuté pour vérifier si un utilisateur possède suffisamment de droit pour modifier une fiche : com.univ.objetspartages.om.AutorisationBean#getAutorisation(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, int, java.lang.String)
Par contre, le paramètre codeRattachementAutre de la méthode est renseigné avec deux sources différentes :
- METATAG.META_CODE_RATTACHEMENT_AUTRE
- <FICHE>.CODE_RATTACHEMENT_AUTRE
Or, un format différent est utilisé pour représenter la liste de structures autres :
- Pour une table de fiche : code1;code2
- Pour la table METATAG : [code] [code2]
Pour gérer cet écart, une conversion est réalisé ici : https://git.kosmos.fr/projects/KORE/repos/koreparent/browse/core/src/main/java/com/univ/datagrid/processus/FicheUnivDatagrid.java#114
if (ficheUniv instanceof FicheRattachementsSecondaires) { ((FicheRattachementsSecondaires) ficheUniv).setCodeRattachementAutres(Chaine.convertirPointsVirgulesEnAccolades(meta.getMetaCodeRattachementAutres())); }
Elle ne fonctionne pas car le format attendu est code1;code2:
final Enumeration<String> e = Chaine.getVecteurPointsVirgules(codeRattachementAutre).elements();