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

Журнал изменений на сайте

3
августа 2011 г.
Журнал изменений на сайте

Предисловие

У вас было такое, когда кто-то что-то натворил, а концов не найти? И чем более масштаб диверсии и выше ответственность, тем меньше шансов найти виноватого. Тем паче, что чем больше народа, тем легче замести следы и свалить на ближнего своего. А такая безнаказанность порождает раздолбайство в ещё больших количествах.

А ещё некоторые гос-структуры имеют предписание вести полный лог изменений на сайте – кто и чего и когда делал на сайте. В идеале хотят ещё и видеть, что изменилось!

Проблема

1. Мы хотим видеть все изменения на сайте: кто, когда, от куда, во сколько, что и сколько раз.

2. Необходимо данные отчеты где-то хранить, как-то защитить от изменения.

3. Было бы здорово видеть объемы работ на сайте.

4. Хочется иметь удобный поиск по полученным журналам действий редакторов, наглядное отображение, доступный фильтр и было бы удачей выгрузить все или некоторую часть в эксель.

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

Формируем задачу

1. Создаем модуль-перехватчик событий. Сразу отметаем перехват событий в форуме, блогах, соцсети и других развлекательных модулях.

2. Чтобы упростить работу с журналами, отказываемся от хранения оных в базе данных и будем писать их сразу в csv-файл. Папку, где хранятся файлы журнала изменений на сайте необходимо конечно же закрыть от любопытных глаз.

3. Чтобы сделать дополнительную защиту файлов журнала будем высылать их раз в сутки (предварительно упаковав в архив) на указанные в настройках электронные адреса.

4. Для удобства работы с журналом, рискнем отказаться от стандартного интерфейса админки 1С-Битрикс, что развязывает нам руки по полной. Добавим в таблицы элементы быстрой фильтрации, что позволит одним кликом нам избавиться от ненужных данных и сосредоточится на нужных.

5. В журнал изменений будем писать логин пользователя, дату и время изменений, IP-адрес, какое действие было совершено, тип инфо блока, название инфо блока и название элемента (или страницы).

6. Добавим в таблицу ссылки для быстрого перехода на редактируемые элементы, профиль пользователя и прочие удобства по возможности.

7. Конечно же все это разбиваем на постраничку и добавляем сортировку на каждую колонку таблицы.

8. Генерируем по агенту ежесуточные отчеты. К отчетам прикрепляем архив нового файла журнала, добавляем в письмо информацию о дате создания журнала и общую статистику о количестве изменений за сутки (очень наглядно показывает объемы работ на сайте).

9. Добавляем в настройках фильтр по всем файлам журналов. Теперь можно легко выдать распечатку всех изменений за определенную дату сделанную определенным пользователем или с определенного айпишника, или с определенным файлом, инфоблоком и т.д.

10. Так как журналов может быть очень много, добавляем настройку на ограничение хранимых журналов на сайте и параметр, на какие адреса рассылать файлы журнала.

11. Т.к. мы работаем изначально с файлами формата csv, надобности в конвертацию для экселя нет. Также, все генерируемые фильтром отчеты легко скачиваются в том-же экселе, распечатываются и прикрепляются к делу.

12. Побочным явлением у нас также фиксируются все обращения в формах обратной связи и прочих формах от обычных посетителей, что является весьма полезной информацией.

13. Добавляем функционал защиты от удаления элементов. Допустим, что файлы удалить пачкой все-таки труднее, да и восстановить их из бэкапа (предполагается, что правильные админы делают ежедневные бэкапы сайта) очень легко. Поэтому концентрируемся на удалении элементов инфо блоков. Делаем администратору сайта функционал, позволяющий указать инфоблоки, в которых удаление элемента запрещено. Даже администратору. Для этого делаем перехватчик события на удаление и подменяем команду удаления командой деактивации элемента. Ну и не забываем для устрашения все это сопроводить ругательствами красными буквами в рамке.

Как и где использовать

Модуль необходим на гос-сайтах, на сайтах, где множество редакторов. Также модуль удобен для разбора полетов между разработчиками и владельцем сайта – чтобы не валить друг на друга, а просто сесть и разобраться.

В заключении, хочется отметить, что данный модуль максимально эффективен при работе совместно с модулем документооборота. Именно он позволяет увидеть (методом сравнения), что изменялось в документе и вернуть его в нужный вид при необходимости.

Модуль живет тут: Модуль для 1С-Битрикс: Журнал изменений на сайте