Bonjour,
j'ai regardé dans le dropdownUsers.php comme vous me l'avez conseillé,
et en fait je ne gère pas du tout la récursivité comme vous l'entendez.
Je suis partis de l'hypothèse qu'un utlisateur avait accès a toute la branche, le travail que je fait avec getEntityAncestors me sert a construire un tableau contenant
la liste des entités dans la branche de l'utlisateur.

Entité racine
   entité 1
      entité 1.1
      entité 1.2
   entité 2
      entité 2.1
   entité 3

Dans la fonçon dont j'ai fait les choses, les utilisateurs ayant des droits sur la base de connaissance
en entité racine auront les mêmes droits sur toutes les entités.
Les utilisateurs ayant des droits en entité 1 pouront lire les articles des entités racine, 1, 1.1 et 1.2, s'ils ont des droits d'ecritures sur l'entités 1 et qu'ils sont récursif, alors ils les auront aussi sur les entités
1.1 et 1.2.
par contre une personne ayant des droits sur l'entité 1.1 pourra lire tous les articles des entites racine, 1 et 1.1 mais pas de l'entité 1.2, ni sur les entités de la branche 2 et de la branche 3. Et inversement, avec des accès sur l'entité 3 on lit la racine, et l'entité 3 mais rien dans les entités 1 et 2.

Je n'ai donc pas fait de gestion de droits surplémentaire. l'ajout dans une entité se faisant par un champs caché contenant l'entité active, je me suis contenté des droits que vous gérez déjà, ce qui veut dire qu'il faut activer la bonne entité quand on veut créer un article dans la base de connaissance.

J'ai pensé mon code pour l'utilité que j'en ai. Dans mon cas les entites me permettent de gérer les differents clients que nous avons, je ne veux donc pas qu'il aient accès les uns les autres aux articles spécifique à chacun de leurs cas, mais un article pour configurer outlook si je peux eviter de le saisir pour chaque client j'aime autant. Donc dans mon cas, la configuration spécifique au VPN par exemple sera créé dans une entité spécifique,
comment on fait un copier/coller sera créé à la racine.

Voila j'espère que je suis un peu plus clair ...

Cordialement,

Guillaume

dombre a écrit :
Bonjour,

Tout d'abord bravo pour le travail réalisé.

Juste quelques petites questions,

Je ne saisi pas trop comment vous avez géré la notion de récursivité.
Vous faites tout un travail en utilisant getEntityAncestors mais il n'y a pas de notion de recursivité au niveau des élèments de la base de données.

Quelle(s) hypothèse(s) sur les droits de vision avez vous pris ?

Un exemple de ce type de gestion se trouve dans ajax/dropdownUsers.php

Cordialement,

Julien

Guillaume PERRIER a écrit :
Navré j'ai oublié de joindre les fichiers ...

Guillaume PERRIER a écrit :
Bonjour,
j'en avais parlé sur le forum, et je l'ai enfin fini.
Voici donc les fichiers patch du code que j'ai écris pour rattacher les articles de la base de connaissance à une entité.
Egalement le script sql pour les modifications à apporter dans la base.

Ce que j'ai écrit prévoit que les utilisateurs aient accès aux articles qui sont dans une des entités de la branche à la laquelle ils appartiennent,
le distingo FAQ/base de connaissance n'a pas été touché.
Tout les articles qui sont dans des entités autres que ancêtres directs ou enfants directs ne sont pas visibles. Le "dropdown" de la page de recherche est prévu pour n'afficher que les catégories qui contiennent des articles visibles, et les parents de ces catégories pour que l'affichage reste cohérent. Ce "dropdown" prend également en compte le cas ou on n'a accès qu'à la FAQ. Je n'ai pas modifié les autres dropdown, celui la création d'un article par exemple ou ceux qui se trouvent dans la fenetre popup de gestion des catégories car il me semblait jusdicieux que les toutes catégories restent accessibles dans ces cas là ne serait-ce que pour éviter de créer une catégorie déjà existente.
Un article est créé dans l'entité active.

Les fichiers de code sont issus du tarball du 12/09/07.

Voila j'espère que ce code sera util.



_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev



--
Guillaume PERRIER
e-mail : [EMAIL PROTECTED]

_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev

Reply via email to