Drupal: Как удалить вкладку «Редактировать» для узла при определенных условиях? - PullRequest
0 голосов
/ 13 января 2012

У меня есть форма узла, которую автор должен иметь возможность редактировать, если не выполняются определенные условия.Я хотел бы удалить вкладку «Редактировать» в этих условиях, для автора.Опытные пользователи все еще должны иметь возможность использовать вкладку «Редактировать».

Функция hook_menu_alter() не работает для меня, потому что она вызывается только тогда, когда меню создается, прежде чем оно помещается в кэш.

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

1 Ответ

4 голосов
/ 13 января 2012

Вы, вероятно, можете использовать Правила , чтобы сделать это, но лично я бы использовал hook_node_access() в пользовательском модуле:

function MYMODULE_node_access($node, $op, $account) {
  if ($op == 'edit') {
    if ($some_condition) {
      return NODE_ACCESS_ALLOW;
    }
    return NODE_ACCESS_DENY;
  }
  return NODE_ACCESS_IGNORE;
}
...