web-dev-qa-db-fra.com

Comment puis-je créer un lien de menu qui s'affiche uniquement pour les utilisateurs authentifiés?

Comment puis-je créer un lien de menu de compte d'utilisateur qui n'apparaît qu'aux utilisateurs enregistrés/authentifiés dans Drupal 8? Je ne veux pas que les utilisateurs anonymes le voient.

Par exemple, je veux avoir un lien de menu "ajouter un nœud".

(Lorsque les utilisateurs anonymes viennent sur les sites drupal, ils voient simplement "connexion" dans le menu du compte utilisateur. Lorsque les utilisateurs inscrits viennent sur les sites drupal, ils voient "mon compte" et "déconnexion". Je souhaite afficher de manière anonyme uniquement "connexion" et pour enregistrer les utilisateurs "mon compte", "ajouter un nœud" et "déconnexion".)

6
RobinSon

En bref, vous créez 2 versions de menu différentes et donnez à chaque version des règles de visibilité différentes.

Tout ce que vous devez faire est de configurer votre bloc de liens de menu

enter image description here

Ensuite, dans Rôles, cochez ☑ Utilisateurs authentifiés et vous voudrez peut-être aussi ☑ Administrateur

enter image description here

Créez maintenant un autre menu (/admin/structure/menu) qui n'a pas le lien "ajouter un nœud". Allez ensuite dans les blocs (/admin/structure/block) dans Menu principal (En supposant que vous utilisez Bartik, peut avoir un nom différent si vous utilisez un thème personnalisé) cliquez sur ajouter, et ajoutez le menu que vous venez de créer et configurez-le.

Cette fois pour les rôles, cochez uniquement ☑ Anonyme

PS: Dans les pages, vous pouvez restreindre afin qu'il n'apparaisse que dans certaines pages.

5
No Sssweat

Un lien de menu "ajouter un nœud" n'est affiché qu'aux utilisateurs autorisés à créer un tel nœud. Donc, si vous donnez la permission aux utilisateurs authentifiés, et non aux utilisateurs anonymes, vous avez terminé.

Si vous avez d'autres exemples de liens qui ont une autorisation connexe, utilisez une approche similaire pour cette autorisation (ne l'accordez pas aux utilisateurs anonymes). Si un lien ne dispose pas d'une telle autorisation, optez pour l'approche décrite dans la réponse de @ No Sssweat .

2
Pierre.Vriens