Перевести сайт в режим "Только для чтения"

27 Ноя 2008
Опубликовано VladSavitsky
Задача: 

Нужно временно отключить возможность добавлять/менять контент на сайте. Это может быть полезно при смене NS-серверов и переносе на другой сервер, когда нужно, чтобы сайт оставался доступен, но контент не менялся.

Решение

По сути нужно перевести сайт в режим "Только для чтения" - посетители могут только читать контент, но ничего не должны менять. При этом админ может настраивать сайт.

Режим "Обслуживание сайта" (режим выполнения технических работ) в этом случае не подходит, потому что сайт нельзя будет читать.

Варианты решений

Использовать модуль Mode

Страница модуля: Mode
Есть версия только для Drupal 6.

Возможности:

  • Перевести сайт в режим "только для чтения", когда у пользователей есть только право 'access content'.
  • Вручную переключать доступ к определённым модулям типа поиска, ограничивая доступ до 'поиск контента' и 'использовать расширенный поиск'.
  • Создавать шаблоны доступа для мультисайтинга для упрощения администрирования.

Выставить нужные права доступа

  • Открыть страницу "Разрешения" (/admin/user/permissions в Drupal 6)
  • Сохранить страницу на своем компьютере, чтобы можно было потом восстановить права доступа или воспользоваться модулем Site Documentation (документирование настроек сайта)
  • Снять галочки для нужных ролей (Гости, Регистированные пользователи и всем, кто может случайно вносить изменения в неподходящий момент) для действий, которые могут менять контент сайта.

Действия пользователей, которые могут менять контент сайта:

модуль comment

  • размещать комментарии

модуль book

  • добавлять материалы в подшивки
  • создавать новые подшивки

модуль node

  • доступ к содержанию сайта
  • управлять типами материалов
  • управлять материалами
  • create *
  • delete any *
  • delete own *
  • delete revisions
  • edit any *
  • edit own *
  • переключаться между редакциями

модуль user

  • изменять свое имя пользователя

Подсказка!
Не забудьте включить эти права снова.

Использовать SQL-сценарии

  • Сделать дамп таблицы permission (при создании указать удаление таблицы, если она существует).
  • В админке друпал выставить нужные права доступа для режима "Только для чтения" (см. Выставить нужные права доступа)
  • Снова сделать дамп таблицы permission (как в первом шаге)

Получаем 2 файла с sql-сценариями. Один включает режим "только для чтения", а другой -выключает.

Недостаток метода в том что, если дампы сделаны были давно и права с тех пор поменялись, то использовать эти дампы не получится и нужно будет снова создавать 2 sql-сценария.

Написать модуль, который будет менять права доступа

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

Если такой модуль существует - дайте мне знать!

Полезные рецепты по этой теме

Использованные материалы

Полезные ссылки

 
 
 

RSS-лента новостей

Dries Buytaert по-русски
]]>Русский поиск Drupal]]>

Перенос сайта из Joomla в Drupal
Перенос сайта из WordPress в Drupal

]]> Drupal - это бесплатная система управления контентом с открытым исходным кодом ]]>