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