Решение
По сути нужно перевести сайт в режим "Только для чтения" - посетители могут только читать контент, но ничего не должны менять. При этом админ может настраивать сайт.
Режим "Обслуживание сайта" (режим выполнения технических работ) в этом случае не подходит, потому что сайт нельзя будет читать.
Варианты решений
- Выставить нужные права доступа
- Использовать SQL-сценарии
- Написать модуль, который будет менять права доступа
- Использовать модуль Mode
Использовать модуль 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-сценария.
Написать модуль, который будет менять права доступа
Можно написать модуль, который будет на своей странице настройки принимать какие права нужно сбросить для перехода в режим "только для чтения".
При включении режима - модуль отключить те права (для каждой роли), которые были установлены в настройках.
При отключении режима - модуль восстанавливает права согласно настроек.
Если такой модуль существует - дайте мне знать!
Полезные рецепты по этой теме
Использованные материалы
Полезные ссылки
- Модуль sitedoc: документирование настроек сайта
- Read only mode - модуль появился 27 сентября 2009го и ещё нет ни одного релиза...










