2010-03-04 8 views
2

J'ai un intranet sur la plateforme Drupal. J'utilise l'autorisation de restreindre l'accès à certains types de nœuds contenant des informations sensibles. Tout cela fonctionne bien. Toutefois, certains de ces nœuds sensibles utilisent la taxonomie comme méthode de catégorisation. Le problème est, j'ai trouvé certains chemins, apparemment créés par le module de taxonomie lui-même, qui montrent des teasers de ces noeuds sensibles, même aux utilisateurs non authentifiés.Drupal: Taxinomie et sécurité

par exemple: mysite.com/category/traintype/site

Affiche les entreprises rendez-vous de formation où le type de formation est sur place. Ces nœuds sont définis de sorte qu'ils ne doivent pas être accessibles aux utilisateurs d'un certain rôle, et certainement pas aux utilisateurs non authentifiés.

J'ai regardé les vues sur le site, et je ne vois pas de vues de taxonomie. Alors, comment puis-je rendre ces chemins inaccessibles?

+0

Plus d'infos nécessaires: Quelle version de Drupal? Quel module est utilisé pour la restriction d'accès? J'ai l'impression que le module Views est installé - encore une fois, quelle version? –

+1

Idem cela. Le noyau Drupal lui-même n'a pas de restrictions d'accès au type de contenu, c'est donc une information importante. L'accès aux nœuds est complet, donc si ces utilisateurs n'avaient pas réellement accès à ces nœuds, les teasers ne devraient pas s'afficher, donc je suppose qu'ils n'ont pas encore d'accès restreint. Vous souhaitez vous concentrer sur la mise en place du bon contrôle d'accès, et non pas simplement masquer l'affichage ou le lien avec le contenu. – stephthegeek

Répondre

1

Une autre méthode consiste à modifier node.tpl.php pour supprimer le teaser si l'utilisateur n'y a pas accès.

+0

Qu'entendez-vous par là? Je ne vois aucune variable particulière qui produirait seulement un teaser. – tpow

+0

Je crois que la syntaxe est if ($ teaser) lors de la sortie des informations. Cependant, une meilleure méthode (après réflexion) se trouve dans le template_preprocess dans template.php. Là, vous pouvez définir $ node-> teaser à '' si user_access() pour l'accès requis renvoie false. –

0

Vous pouvez utiliser hook_menu() ou hook_menu_alter() dans un module personnalisé pour remplacer l'élément de menu par défaut créé par le module de taxinomie. Ici vous pouvez ajouter votre propre contrôle d'autorisation supplémentaire ou le supprimer complètement.