Projet

Général

Profil

Actions

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

Ajouté par David Lesimple il y a environ 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Closed
Priorité:
Normal
Assigné à:
Catégorie:
Administration
Début:
24/01/2022
Echéance:
% réalisé:

100%

Temps estimé:
Navigateur:
Tous
Votre version de Silverpeas:
6.2.2
Système d'exploitation:
Votre base de données:
Toutes
Livraison en TEST:
Livraison en PROD:

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 environ 2 ans

  • Statut changé de New à In progress...
  • Assigné à mis à Nicolas Eysseric

Mis à jour par Nicolas Eysseric il y a environ 2 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 environ 2 ans

  • Statut changé de Resolved à Integration in progress...

Mis à jour par Yohann Chastagnier il y a environ 2 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 environ 2 ans

  • Statut changé de Assigned à In progress...

Mis à jour par Yohann Chastagnier il y a environ 2 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:

Mis à jour par Miguel Moquillon il y a environ 2 ans

  • Statut changé de Resolved à Integration in progress...

Mis à jour par Miguel Moquillon il y a environ 2 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 environ 2 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 environ 2 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 environ 2 ans

Ok. J'intègre donc les PR

Mis à jour par Miguel Moquillon il y a environ 2 ans

  • Statut changé de Integration in progress... à Closed
Actions

Formats disponibles : Atom PDF