Permission personnalisé

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour à tous,
Je poste ici car je n'ai trouvé la réponse nulle part (en français).
Ma question est simple si vous arrivez à me comprendre.

J'ai créé un module groupContrib (groupe de contributeurs éditoriale)

Le principe est assez simple :
- j'ai deux groupe qui contiennent les id des users avec un rôle "Contributeurs"
- le rôle contributeurs peut créer du contenu, et editer son propre contenu
- le rôle contributeurs n'a pas la permission "administer nodes" il ne peut donc pas acceder via l'admin au contenu créé ni publier etc
- j'ai donc créé une page groupe contrib dans l'admin accessible via la permission "administer groupContrib"
- cette page liste les groupe et ajoute un lien "voir les article de ce groupe"
- qui envoie sur une page qui liste les noeud avec un lien "éditer l'article" pour chaque nœud

IMPORTANT
- j'ai créé les permission suivantes que j'ai attribué au rôle "Contributeurs"

array('access own group content',
'edit own group content',
'delete own group content',
'access all group content',
'edit all group content',
'delete all group content',
'administer customGroup');

(dsl pour le copier/coller)
ça c'est ce que j'ai réussi a faire :)

Maintenant ce que je veux faire (accrochez-vous!)
Chaque contributeurs qui n'a comme permission de base edit OWN content, pourrai aussi éditer et sauver les articles créé par les contributeurs faisant parti du même groupe que lui

Avant de me lancer j'aurai aimé savoir si vous aviez déja eu ce cas de figure et savoir si vous aviez une piste même une idée!

faut il, et de quelle manière, surcharger le node_access? (je ne veux pas modifier le core mais je crois qu'on est d'accord...)

merci d'avance,
Vincent

Version de Drupal : 

J'ai l'impression(je me trompe peut-être) que tu te compliques l'existence avec un développement "maison" alors qu'il existe des solutions qui - dans ton cas - pourrait convenir.

Parmi les questions clés : que recouvre la notion de groupe ? J'ai l'impression que c'est une sorte de "sur-couche" par rapport aux rôles plus qu'autre chose...

Parceque si tu souhaites "simplement" définir des permissions type de contenu <=> rôle ("Voir" "Editer" "Effacer") le module Content Access semble être une solution intéressante.

Si tu as besoin d'un workflow pour l'approbation des publications tu peux utiliser le control d'accès de Workflow Access (sous module de Workflow) pour mettre en place ce type de contrôle des accès.

Si par contre tu as besoin de créer des groupes dont la publication de contenu doit être "autonome" (l'accès au contenu est déterminé par l'appartenance à un groupe) alors c'est Organic Groups qu'il te faut...

Tout en gardant à l'esprit, c'est très important, que tu ne peux pas utiliser plusieurs modules d'accès au contenu parce qu'un module dans Drupal ne peut que donner l'accès (GRANT) et non le refuser (DENY).

Aussi très important, il suffit qu'un module donne accès à un contenu pour que l'utilisateur puisse y accéder... (exemple si tu installes content access avec OG access alors si content access donne accès à un contenu, peut importe que l'utilisateur appartiennent bien à un groupe donné il pourra consulter tous les contenus auquel content access aura donné accès). C'est parce que le système de permission est fondé sur un ou logique (OR) et non un AND.

Il y a toutefois un espoir de solution grâce à Module Grants qui modifie cette logique en forçant un et logique (AND) mais à utiliser avec précaution l'autre jour sur un site avec un schéma de permission complexe j'ai réussi à me vérouiller l'accès à tous les contenus même en étant superuser (ID 1). En gros quand ton schéma est AND il faut que tous les modules d'accès impliqué donne la permission d'accès. Il suffit qu'un module refuse l'accès et hop, bloqué.

Salut,

je poste ici car je pense que la réponse que j'attends se trouve dans les modules que tu as cité.

En fait, ce que j'aimerai, c'est de pouvoir au moment de la création d'un contenu quel qu'il soit, pouvoir indiquer qui pourra ou non voir ce contenu.
Par exemple, si je crée un article 'Mon article', je veux que seuls les utilitateurs de tel ou/et tel groupe(s) puissent y accéder.
Est-ce que le module 'Content Access' permet de faire cela ???

De plus, il faut que dans mon menu, le lien vers ce nœud n'apparaisse que pour ceux qui ont le droit de le voir. Est-ce que ce module gère cela aussi ou bien est-ce qu'il faut aussi utiliser le module 'Menu Per Node'. Si c'est le cas, c'est pas super pratique car il faut en plus de paramétrer l'accès lors de la création du noeud, paramétrer le menu à chaque fois qu'on crée un nouveau contenu.

Et petite question subsidiaire, si jamais le contenu crée est publié en page d'accueil, est-ce que celui-ci apparaitra pour tout le monde ou juste pour les ayant droits ???

Merci d'avance pour vos réponses.
Tchuss, @+, jinpol...

Bonjour!

Je travaille présentement sur un intranet et je suis nouvelle sur Drupal. J'ai le même type de problème. Mais dans mon cas chaque rôle doit avoir accès a un forum particulier sans voir les autres. J'ai installer le module content Access mais je n'arrive pas a donner les accès restreint. J'ai beau donner un accès réserver à chaque groupe et à chaque forum, l'utilisateur a quand même accès aux autres forums.

Merci d'avance

jvendette.