При создании новой страницы или узла в Drupal хотелось бы ограничить к ней доступ.
О предоставлении такой возможности мы поговорим с помощью модуля Правила .
Несколько слов о модуле Правила .
Это своего рода отличное дополнение для CMS. Друпал .
Если в вашем проекте отсутствует логика поведения различных событий, попробуйте этот модуль.
Что касается производительности, модуль Правила существенно не замедляет работу с базами данных.
Поэтому, если у вас достаточно серьезный по ресурсам проект, вам придется очень много писать для себя.
В моем случае достаточно тонко настроить модуль и добавить поле в нужный тип контента.
Чтобы сразу отсекать вопросы по подобным модулям, типа Доступ к контенту , уточню, что задача состоит в том, чтобы ограничить доступ к определенной странице.
В том же Content Access можно контролировать доступ к типу «контент».
То есть ограничить доступ пользователей ко всему содержимому сайта или лишить определенных прав (редактирование, удаление).
Теперь, когда мы обсудили задачу и решили, как ее выполнить, приступим.
Подготовка – установка модуля
Сначала необходимо установить модуль Правила .Процесс установки стандартный, как и для всех модулей Drupal, описывать его нет смысла.
Все работы ведутся под версией Drupal 7 и вам необходимо скачать модуль той же редакции.
Вам нужно будет установить модуль Сущность .
Устанавливаем и активируем все модули.
Давайте убедимся, что они активны:
Настройка модуля «Правила»
Заходим в настройки модуля Конфигурация-> Процесс-> Правила .На первой вкладке «Правила» создайте новое правило.
Заполните необходимые поля — имя правила, имя машины.
Укажем событие, которое сработает у нашего правила — Контент просматривается.
Зададим тип контента — Страница.
Сохраняем правило и временно закрываем его.
Добавление произвольного поля - Доступ к материалу
Чтобы добавить поле, перейдите в раздел Структура -> Тип контента -> Страница -> Управление полями..
Добавим новое поле «Список (текст)» (Список с текстом), зададим имя «Доступ к материалу», имя машины «field_view_access» и укажем выбор через флажок (флажки).
Нажмите «Сохранить».
Откроется окно настройки полей списка.
Здесь мы можем дать подсказку — текст справки.
Добавим значения в список:
Вам следует сделать это поле обязательным и установить значение по умолчанию на первое значение «Видимо всем».
Это сэкономит вам время в будущем.
Сохраняем настройки полей и они уже появятся при редактировании «Страниц» сайта, хотя никакой логики не выдают. Чтобы это поле не отображалось как текст на страницах, нажмите в том же разделе редактирования типа материала «Страница» -> Управление отображением.
Установите скрытое отображение, и текст из нового поля отображаться не будет.
Привязка настраиваемого поля к правилу
Итак, завершающий этап — привязка нашего поля и вывод информации пользователю.Перейдем снова к редактированию нашего правила (см.
пункт 1).
Добавим условия в правило:
1. НЕ сравнение текста - Говорит, что содержимое поля не должно иметь указанного значения.
Отрицания можно задать с помощью флажка в самом низу параметров условия.
Поле [field-view-access] указано и имеет значение 0. То есть, если доступ к странице есть только у администраторов, то это условие будет работать.
2. И - Логический оператор добавляется кнопкой ниже «Добавить и».
Чтобы это заработало, нужно перетащить необходимые условия на дочерние элементы.
3. НЕТ у пользователя есть роль(и) – Когда у пользователя нет роли «разработчик», это условие также срабатывает. Здесь все просто.
Теперь что произойдет - Действия:
1. Показать сообщение на сайте — Показать сообщение с классом ошибки, текст указывается в параметрах.
2. Перенаправление страницы — Простой 301 редирект, чтобы пользователь мог продолжить навигацию по сайту.
Мы соблюдаем наше правило и радуемся.
Я с нетерпением жду ваших комментариев.
Всем приятного изучения сети.
Теги: #доступ к контенту #drupal 7 #правила Drupal #drupal
-
Субстики №128
19 Oct, 24 -
Джеб Кличко
19 Oct, 24 -
Были Ли Предки Митохондрий Паразитами?
19 Oct, 24