Bug #12840
ferméAprès restauration de la corbeille d'un espace contenant une application, les droits hérités ne sont pas repris sur l'application
100%
Description
Contexte : une sous-espace S2 , qui hérite des droits de son espace parent S1 , contient une application A , en droits hérités elle aussi.
Si on supprime l'espace S2 , l'espace et son application se retrouvent dans la corbeille.
Depuis celle-ci, lorsqu'on restaure l'espace S2 , celui-ci récupère bien les droits hérités de S1 , mais l'application A ne récupère rien, ses droits restent vides.
Mis à jour par Nicolas Eysseric il y a presque 3 ans
- Statut changé de New à In progress...
- Assigné à mis à Nicolas Eysseric
Mis à jour par Nicolas Eysseric il y a presque 3 ans
- Statut changé de In progress... à Resolved
- % réalisé changé de 0 à 100
Le cache de l'arborescence n'était pas remis à jour au bon endroit.
Traité par PR https://github.com/Silverpeas/Silverpeas-Core/pull/1193
Mis à jour par Yohann Chastagnier il y a presque 3 ans
- Statut changé de Resolved à Integration in progress...
Mis à jour par Yohann Chastagnier il y a presque 3 ans
- Statut changé de Integration in progress... à Assigned
- Assigné à changé de Nicolas Eysseric à Yohann Chastagnier
En intégrant le travail de Nicolas je me suis aperçu d'autres problèmes.
Pour illustrer ces problèmes prenons la structure de référence suivante :(Ex=espace ; uX=utilisateur ; _inst_X=instance application ; ߐ=droits spécifiques ; Է=droits hérités ; P=rôle "publisher" ; W=rôle "writer" ; R=rôle "reader")
(les applications
blog
et almanach
utilisées dans l'exemple regroupent dans le rôle "publisher" les rôles "writer" et "publisher" d'un espace)
- E1 ߐ[ P(uA), W(uB) ]
- _inst_kmelia Է[ P(uA), W(uB) ]
- _inst_blog Է[ P(uA, uB) ]
- E2 ߐ[ P(uC) ] et Է[ P(uA), W(uB) ]
- _inst_almanach ߐ[ R(uF) ] et Է[ P(uA, uB, uC) ]
- E3 Է[ P(uA, uC), W(uB) ]
- _inst_kmelia Է[ P(uA, uC), W(uB) ]
- _inst_blog ߐ[ R(uE) ] et Է[ P(uA, uB, uC) ]
Les cas de tests suivants sont réalisés avec la correction proposée par Nicolas pour résoudre le problème initial de ce REDMINE.
Cas de test 1¶
- se diriger sur E1
- onglet
Publieurs
- ajouter un utilisateur,
uD
dans ce cas de test
Résultat obtenu
Sur les instances d'application qui regroupent plusieurs rôles d'un espace en un seul, des utilisateurs disparaissent.
Par exemple, uB
disparaît au niveau de l'instance _inst_almanach de E2
Résultat attendu
Les utilisateurs des rôles de l'espace sont tous pris en compte dans le rôle de l'instance de l'application qui combine ces rôles de l'espace.
Cas de test 2¶
- se diriger sur E2
- supprimer l'espace
- se diriger dans la corbeille d'espaces & applications
- restaurer l'espace E2
Résultat obtenu
Les droits spécifiques sur les instances de E3
ne sont pas supprimés lorsque E2
est mis dans la corbeille.
Ils sont du coup encore présents suite à la restauration de E2
.
Par exemple, uE
est toujours présent dans les droits spécifiques reader
de l'instance _inst_blog
de E3.
Résultat attendu
Plus de droits spécifiques sur les espaces et instances restaurés.
Cas de test 3¶
Il s'agit d'effectuer le même enchaînement d'opération que le cas de test 2, mais d'identifier un autre problème.
Résultat obtenu
Sur les instances d'application qui regroupent plusieurs rôles d'un espace en un seul, des utilisateurs disparaissent.
Par exemple, uB
disparaît au niveau de l'instance _inst_almanach de E2
Résultat attendu
Obtenir les données de référence avec uniquement les utilisateurs uA
et uB
positionnés sur toute l'arborescence.
Cas de test 4¶
- se diriger vers E1
- onglet
Publieurs
- ajouter un utilisateur
- retourner sur la description de E1
- modifier l'espace
- sélectionner
Ce sous espace n'hérite pas des droits de l'espace
Résultat obtenu
L'utilisateur ajouté spécifiquement sur le rôle publisher
à E1 n'est pas propagé dans les instances et sous-espaces.
Résultat attendu
L'utilisateur ajouté spécifiquement sur le rôle publisher
à E1 doit être propagé aux instances et sous-espaces.
Mis à jour par Yohann Chastagnier il y a presque 3 ans
- Statut changé de Assigned à In progress...
Mis à jour par Yohann Chastagnier il y a presque 3 ans
- Statut changé de In progress... à Resolved
Le traitement de diffusion des droits d'un espace à ses instances de composant et sous espaces a été complété.
Le chargement des données d'un espace a également été revu de sorte d'augmenter les chances d'avoir des données cohérentes, notamment au moment de l'exécution des traitements de diffusion.
Il y a deux PR ici proposés du fait de différences de code (mais pas de comportement) entre la version 6.2.x et 6.3.x au niveau de ces traitements.
PRs:6.2.x
: https://github.com/Silverpeas/Silverpeas-Core/pull/1198 + https://github.com/Silverpeas/Silverpeas-Core/commit/6a96506ac18039b58a92c7dfdea8a3ef3b42dea56.3.x
: https://github.com/Silverpeas/Silverpeas-Core/pull/1196 + https://github.com/Silverpeas/Silverpeas-Core/commit/072ed400583fa35ac981f3a7644079c4e3205662
Mis à jour par Miguel Moquillon il y a presque 3 ans
- Statut changé de Resolved à Integration in progress...
Mis à jour par Miguel Moquillon il y a presque 3 ans
Lorsqu'un espace passe de droits spécifiques à droits hérités, les utilisateurs qui avaient été au préalable définis explicitement dans des rôles disparaissent de ces rôles. Est-ce le comportement voulu ?
Mis à jour par Yohann Chastagnier il y a presque 3 ans
C'est en effet ce que j'ai observé au cours de mes tests.
Cela est à priori le comportement attendu.
Est-ce que tu peux confirmer Nicolas ?
Mis à jour par Nicolas Eysseric il y a presque 3 ans
C'est le comportement initial.
Il n'est peut être pas optimal et pourrait bénéficier d'une évolution lors du passage de droits spécifiques à hérités : Voulez-vous conserver les droits spécifiques actuels ?
Mis à jour par Miguel Moquillon il y a presque 3 ans
- Statut changé de Integration in progress... à Closed