Проверьте разрешения на отображение просмотров для пользователя - PullRequest
0 голосов
/ 16 июля 2010

Пользователь может быть в роли X.

Существует представление, где отображение A разрешено для роли X, а отображение B. ограничено.

Как программно проверить, является ли пользовательпринадлежность к роли X может получить доступ к дисплею или нет?

Ответы [ 3 ]

0 голосов
/ 16 июля 2010

Есть ли конкретная причина, по которой вы хотите сделать это программно?Вы можете установить правила доступа для дисплеев видов в пользовательском интерфейсе видов:

Отредактируйте вид, выберите дисплей и найдите «Доступ» в блоке «Основные настройки».Щелкните значение (по умолчанию = «Неограниченный»), нажмите кнопку «Переопределить», чтобы переопределить настройку для этого конкретного дисплея и выбрать нужные настройки.

0 голосов
/ 25 февраля 2013

Может быть реализовано встроенным в тему, но лучше разбить его на модуль + тема.(предполагает drupal-7) В вашей теме (node ​​- contenttype.tpl.php) вызовите пользовательский метод доступа:

if (module_invoke('hottopicresearch', 'display_moderated_research_access_callback', 'update', $node)) {

Реализуйте этот обратный вызов доступа в модуле:

function hottopicsresearch_display_moderated_research_access_callback($permission, $node) {

И проверьте роли

 if (in_array("editorial board admin", $user->roles) || $user->uid == 1) {

и / или доступ к узлу, как отмечено в других ответах:

 if (!node_access($permission, $research_parent_node)) {

, возвращающих TRUE или FALSE.

Этот пример предоставил доступ клюди с ролью администратора редакции и люди, которые могут писать в узел.Никто другой не может видеть индекс.Конечно, это не мешает им напрямую обращаться к узлу.

0 голосов
/ 16 июля 2010

Что вам нужно сделать, это проверить разрешение вместо роли, используя: user_access

...