Запрещенный узел по-прежнему отображается в меню - как мне это предотвратить? - PullRequest
0 голосов
/ 28 февраля 2011

Я реализовал hook_menu_alter для добавления пользовательской функции доступа к стандартному пункту меню узла /% узла в Drupal 6.

function amh_workflow_menu_alter(&$items)
{
  $items['node/%node']['access callback'] = '_amh_workflow_access';
}

Эта функция отлично подходит для определения доступа, когда сам узел отображается для пользователя, но пункт меню для узла всегда отображается. Я хотел бы, чтобы пункт меню отображался только для пользователей, когда у них есть доступ к странице.

Я несколько раз пытался очистить кеш, но пункт меню упрямо отказывается скрывать. Это кажется действительно странным, поскольку другие пункты меню (правда, я думаю, что они все используют стандартные user_access и аргументы простого доступа) все правильно скрыты или отображаются в соответствии с привилегиями пользователей.

Я не понимаю, почему сам узел защищен правильно, а не пункт меню. Мне не кажется, что обратный вызов доступа вызывается при отображении меню (отладочные сообщения в методе обратного вызова не отображаются).

1 Ответ

0 голосов
/ 28 февраля 2011

Это неправильный способ справиться с доступом к узлу.

http://api.drupal.org/api/drupal/modules--node--node.module/group/node_access/6

...