Как запретить отображение блока Drupal, если у пользователя нет определенного разрешения?

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

У меня есть модуль, который определяет пользовательские блоки. Вместо того, чтобы полагаться на то, что администратор ограничивает видимость блоков на основе ролей, может ли мой модуль ограничивать отображение своих блоков, если у пользователя нет определенного разрешения?

2 ответа

Решение

Проверьте доступ по user_access("Некоторое имя доступа");
Для вашего модуля просто верните пустое значение, и блок для этого пользователя не появится.
Для блочного администрирования используйте php код для наглядности.

Никит прав, пример кода:

<?php

$block = array();
if (user_access('my custom permission')) {
  $block['content'] = t('Here is a message');
}
return $block;

?>
Другие вопросы по тегам