Afficher des menus selon son authentification

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,

je suis en pleine exploration des possibilités de Drupal et je voudrais avoir des petits renseignements concernant les menus (je dis bien menu et pas noeud!).

1) En fait je voudrais afficher certains menus que lorsque l'on est authentifier.

Exemple: J'ai 3 menus de créés: Test1, Test2 et Test3.
Je souhaiterais qu'une personne non-authentifié (donc anonyme) ne puisse voir que le menu Test1. Mais lorsque qu'une personne est authentifiée elle puisse voir le menu Test1 et Test2 par exemple.
Existe-t-il un module permettant de cacher les menus ainsi?

2) 2ème demande beaucoup plus délicate!!! Je souhaiterais maintenant que mon anonyme voit que le menu Test1 mais qu'une personne, appelée 'a1', authentifiée voit le menu Test1 + Test2 et qu'une personne 'a2' authentifiée elle aussi puisse voir Test1 + Test2 mais aussi Test3!!!!
Tout ceci est-ce possible? Guider moi tout en sachant que je parle de menu et non pas de noeud car les modules de contrôles d'accès ne gèrent que les noeud et pas les menus!!

Dois-je forcément recoder certains bloc PHP?

Merci d'avance.

Aurélien

Version de Drupal : 

Oui pas de souci!!

Alors j'ai défini des rôles aux utilisateurs de mon site.
Par défaut il y a deux types de rôles sur les sites drupal:
anonymous user et authentified user.
Moi j'ai utilisé ces rôles (voir créés des nouveaux) et lorsque je créé un menu, je le place selon les blocs (du classique jusque là). Dans la configuration d'un bloc, tu peux définir la visibilité de ton bloc pour des rôles spécifiques.

Ainsi avec un exemple :
3 utilisateurs: user1, user2 et user3
3 rôles: role1, role2 et role3

Je souhaite établir 3 menus:
menu1 accessible par tous
menu2 accessible par user2 et user3
menu3 accessible par user3 seulement.

quand tu place ton bloc menu3 => configurer => paramètres de visibilité spécifiques et rôles => coche role3 pour que le menu3 ne soit visible que par le user3

Par ailleurs, j'ai remarqué que si je crée un noeud au menu3 intitulé node3 alors le user2 peut accéder a la page en tapant le chemin dans l'URL. ex: http://localhost/drupal/?q=node/3
alors qu'il ne doit pas avoir accès au menu.

Je conseille alors d'utiliser le module nodeaccess qui permet de mettre des droits sur les pages toujours grace aux rôles.

Voilà en espérant que c'est assez clair...Sinon n'hésitez pas à demander.

Ok, merci pour l'explication...

Moi, j'ai un autre problème, je souhaite ajouter un élément de menu à un menu qui n'est accessible que par l'administrateur (concrètement, ajouter un élément de menu "gestion des stocks" au menu "ecommerce configuration").

Je créé mon élément de menu "gestion des stocks", je le rattache au menu "ecommerce configuration", jusqu'ici, tout est OK.

Le soucis, c'est que "gestion des stocks" est visible pour tous les profils (admin comme user) !!

Tout dépend comment tu gères tes utilisateurs!!
Tu peux jeter un oeil au module taxonomy qui semble pas mal pour ça (mais je ne l'utilise pas).
Sinon tu pourrais créer un rôle supplémentaire réservé aux administrateurs (car nativement on a 2 rôles: authentifié et anonyme): admin qui aurait la possibilité de voir tous les menus y compris "ecommerce configuration" et alors tes users tu devras les attribuer à d'autres rôles comme le rôle authentified par exemple qui lui ne pourra pas voir le menu ecommerce configuration.

Je sais pas si je suis clair...

Merci Coudman pour ces infos...

J'ai déjà une gestion des utilisateurs qui me permet d'interdire / autoriser des pages en fonction du profil (avec le module Taxonomy Access Control Lite), mais je ne vois pas comment l'appliquer à mon cas...