web-dev-qa-db-fra.com

Comment restreindre l'accès aux nœuds en fonction des rôles d'utilisateur?

Comment puis-je autoriser uniquement l'affichage de nœuds spécifiques en fonction des rôles d'utilisateur?

Fondamentalement, je ne veux pas permettre aux utilisateurs d'accéder à des nœuds d'un rôle spécifique.

8
harshal

Avez-vous essayé le module d'accès au conten

Ce module vous permet de gérer les autorisations pour les types de contenu par rôle et auteur. Il vous permet de spécifier des autorisations d'affichage, de modification et de suppression personnalisées pour chaque type de contenu. En option, vous pouvez activer les paramètres d'accès par contenu, afin de personnaliser l'accès pour chaque nœud de contenu.

3
4life

Ce dont vous parlez est Drupal contrôle d'accès au nœud, qui est un sujet énorme.

La prise en charge intégrée du noyau pour le contrôle d'accès aux nœuds est assez grossière, et pour contrôler l'accès pour afficher un nœud par rôle, vous devez utiliser une sorte de module de contrôle d'accès aux nœuds.

Il y a page sur Drupal.org listant tous les modules d'accès aux nœuds , avec une revue de capsule de chacun. Je vous suggère de jeter un œil à cette page pour voir si vous pouvez trouver un module approprié pour contrôler l'accès en fonction des rôles.

Lorsque vous travaillez avec le contrôle d'accès, cela aide à comprendre comment les modules de contrôle d'accès Drupal fonctionnent réellement, voici une description rapide:

  1. Les utilisateurs autorisés à administrer les nœuds ne sont jamais limités par le contrôle d'accès aux nœuds. Les utilisateurs qui ne sont pas autorisés à afficher le contenu publié ne peuvent jamais être autorisés à accéder par un module d'accès au nœud. Seuls les utilisateurs qui ont un "accès au contenu" et non un "administration des nœuds" sont éligibles pour le monde sauvage du contrôle des modules d'accès aux nœuds.

  2. Contrôle d'accès aux nœuds en Drupal est en règle générale additif . Cela signifie que tout module effectuant le contrôle d'accès conformément à la "La philosophie Drupal" ne doit autoriser l'accès, pas le refuser. Un administrateur qui souhaite affiner l'accès à un nœud doit d'abord s'assurer que personne n'y a accès, puis ajouter des autorisations d'accès à toute personne qui doit y avoir accès.

Cela signifie qu'il peut être assez lourd de restreindre l'accès à un individu avec un module comme Content Access , car vous devez commencer par refuser à tout le monde l'accès, puis l'ajouter à nouveau aux nœuds que vous ne souhaitez pas restreindre. Cependant, je pense que c'est la meilleure option si vous avez vraiment besoin de le faire nœud par nœud. Sa résolution principale est les types de contenu, mais elle vous permet de remplacer cela pour des nœuds uniques.

Malheureusement, vous ne pourrez pas utiliser Refuser l'accès car il ne fonctionne que sur les types de contenu, sans remplacement pour les nœuds individuels.

NB: L'utilisation de plusieurs modules d'accès aux nœuds n'est pas recommandée.

Notez que si vous pouvez modifier vos besoins afin de pouvoir utiliser le type de contenu comme unité de base pour le contrôle d'accès aux nœuds, alors Refuser l'accès serait idéal. Par exemple, si vous avez un rôle "étudiant" et que vous souhaitez refuser l'accès aux nœuds avec des réponses, vous pouvez créer un type de contenu "Réponse" (qui peut simplement être un clone de "l'article" par défaut) et refuser l'accès sera veillez à ce que tous les nœuds de type "Réponse" ne soient pas vus par le rôle "étudiant".

16
Free Radical