Мне нужна помощь, и вот проблема:
Я создаю сайт, используя Drupal 7.
Мне нужно, чтобы некоторые страницы были видны только зарегистрированным пользователям (каждая из которых имеет свое имя пользователя / пароль), другие пользователи должны быть просто перенаправлены или показаны сообщения об ошибках. Эта функциональность может быть включена в сам Drupal 7 или есть модуль, который делает это (что-то более простое, чем Organic Groups)?
Если вы хотите сделать это программно в модуле или узле (с входным фильтром PHP), вы можете использовать user_is_logged_in () для чего-то вроде этого:
источник
Хотя модуль Content Access хорошо решает эту проблему, это дополнительный модуль, и он еще не стабилен на D7.
Альтернатива, использующая только обычно используемые модули:
Создайте узлы, но установите их как неопубликованные
Создайте представление узла, например, «контент с ограниченной ролью». Показать полное содержимое узла для репликации стандартного узла /% отображения.
Ограничьте просмотр желаемыми ролями (например, «Роль | Прошедший проверку»)
Установите путь к виду что-то вроде:
Установить контекстный фильтр по Nid.
Удалите фильтр «содержимое опубликовано» по умолчанию.
Теперь у вас будет представление, которое работает так же, как узел /%, за исключением того, что оно также обрабатывает неопубликованный контент и ограничивает роль.
источник
Существует довольно простое программное решение, вы можете прочитать роль пользователя (а также, если она анонимна или зарегистрирована) следующим образом:
вы получите массив с ролями текущего пользователя в $ role.
Вы можете перенаправить этого пользователя в зависимости от роли с помощью некоторой логики, используя
источник