Submitted by Mr.Rato on
Bonjour à tous et d'avance merci de votre aide !
Je m'arrache un peu les cheveux sur le problème suivant :
Mon site Drupal sert à gérer l'envoi et le suivit de dossiers qui sont en fait des fichiers PDF. Pour ce faire, il y a deux types de dossiers et 5 types d'utilisateurs (dont les relecteurs des dossiers).
L'utilisateur se connecte, et poste son dossier qui est en fait un node. Ensuite le relecteur vient envoyer des commentaires, qui peuvent contenir une nouvelle version du dossier et ainsi de suite jusqu'à sa validation.
Mon problème est le suivant : j'aimerais empêcher aux utilisateurs d'accéder aux nodes des autres grâce aux informations contenues dans leur profil. A l'inscription, c'est l'admin qui attribue un field "GROUPE DE TRAVAIL" et impossible pour l'utilisateur de le modifier. Il me faudrait donc au pire une méthode pour exclure de mes views les nodes d'auteurs n'ayant pas le même groupe de travail que l'utilisateur courant, au mieux un contrôle d'accès : vous n'êtes pas autorisé à voir ce dossier parce que ce n'est pas votre groupe de travail.
Si vous avez une solution, je suis preneur avec plaisir et vous remercie !
Je sais pas si c'est ca que
Permalien Soumis par Mixalis44 le 29 Octobre, 2015 - 14:24
Je sais pas si c'est ca que tu veux mais tu pourrais faire :
- Un vocabulaire de taxonomy ( Groupe )
- Un champ avec entity_reference de ton node pdf vers cette taxo. Comme ca, quand tu créés ton node pdf tu peux le lié à 1 ou plusieurs groupe.
- Sur ton entité user tu créés un champ entity_ref vers la meme taxo. Et tu remplit ce champ pour chaque utilisateur
Comme ca tu met en relation le node et les utilisateurs via une taxo.
Et dans views tu peux filtrer tes nodes grace à un filtre qui compare le champ "groupe" des nodes avec le champ "groupe" de l'utilisateur connecté.
Au moins il ne verra pas les node qui ne sont pas dans ses groupes.
Après pour interdire l'accès à la modification d'un node en testant le système de groupe, il faudra coder. En tout cas je ne voit pas d'autres solutions.
Merci de ta réponse,
Permalien Soumis par Mr.Rato le 29 Octobre, 2015 - 17:47
Merci de ta réponse,
Donc un peu comme dans ce tutoriel là : https://www.drupal.org/node/200631
Ça revient à créer une taxonomie par groupe d'utilisateur, et à attribuer cette taxonomie à chaque node créer par tel utilisateur.
Ma question avec cette solution est celle de l'importation des utilisateurs, j'en ai 400 en gros, par groupes de 5, et s'il faut tout faire à la main un par un c'est l'enfer !
Il y a peu être une solution
Permalien Soumis par Mr.Rato le 29 Octobre, 2015 - 18:28
Il y a peu être une solution avec Organic Groups aussi non ?
J'avais fait quelque chose de
Permalien Soumis par vincent59 le 30 Octobre, 2015 - 22:50
J'avais fait quelque chose de ce genre en me basant sur le module ABT (Access By Term).
On crée une taxonomie, avec des termes (un par groupe), et ce groupe de travail est assigné à l'utilisateur.
Chaque node est ensuite "taggé" également, et on gère les droits sur ce terme.
Pour nos besoins, on pouvait assigner plusieurs groupes à une personnes, par exemple si elle pouvait faire partie de plusieurs groupes.
Ceci permettait de recueillir des documents pour différents établissements scientifiques faisant partie du même groupe.
On peut donc gérer des droits par terme, et en combinant les rôles (rédacteur / relecteur) , limiter par exemple la mise à jour de son propre contenu pour le rédacteur, et la mise à jour de tous les contenus (du groupe) au relecteur.