Comment restreindre l'accès direct aux nœuds mais simplement autoriser les vues à accéder au champ requis du type de nœud particulier?
Par exemple, dans le diaporama de vues, nous glissons le champ d'image qui appartient à un type de nœud particulier. Mais nous ne voulons pas que les moteurs de recherche accèdent et que les visiteurs accèdent aux nœuds appartiennent à ce type de nœud.
Aucune suggestion?
Restreindre l'affichage des pages de nœuds semble être un meilleur moyen de restreindre l'accès direct à tous les nœuds de type de contenu spécifique.
L'utilisation est également assez simple, il vous suffit d'activer ce module et de configurer les autorisations pour les nœuds qui sont directement accessibles comme d'habitude.
http://drupal.org/project/restrict_node_page_view
Depuis la page du projet:
la source
Un autre module qui fait la même chose mais avec plus de fonctionnalités.
Trou de lapin
Les responsables de ce projet demandent à "Restreindre l'affichage des pages de noeuds" pour maintenir la fusion des projets dans les problèmes.
Avantages par rapport à "Restreindre l'affichage des pages de nœuds":
Inconvénient par rapport à "Restreindre l'affichage des pages de nœuds":
la source
vous devez utiliser
node_access()
, il existe certaines options que vous pouvez facilement implémenter en utilisanthook_node_access()
. L'implémentationnode_access()
vous permet de décider qui peut accéder à un nœud et qui peut créer, supprimer, modifier ou mettre à jour un tel nœud. Cependant, les vues peuvent toujours extraire des données de ces nœuds.hook_node_access () , node_access ()
la source
Inspiré par https://www.drupal.org/project/restrict_node_page_view, vous pourriez écrire un petit module vous-même:
la source
En utilisant le module Rules, vous pouvez implémenter une règle qui ressemble à ceci:
La règle ci-dessus ne prend pas (encore) en compte pour n'appliquer l '"action" qu'aux rôles sélectionnés (par exemple pour que les administrateurs puissent toujours utiliser ces chemins pour afficher un nœud). Mais pour tous ceux qui connaissent un peu le module Rules, c'est une "Condition" simple à ajouter ...
Pour expérimenter cette règle dans votre propre site, copiez tout le code Rules ci-dessus et collez-le dans une nouvelle règle dans votre propre site, créée via la fonction "Importer". Ensuite, modifiez / affinez davantage pour l'adapter à votre propre environnement (par exemple, le message "Désolé, ..." sera affiché).
la source