Миниатюрная веб-система для учёта посетителей на проходной по номерным пропускам.
Для гостевого / разового / экскурсионного доступа на предпритие часто заводят отдельные номерные пропуска, тогда как данные о посетителе обычно не известны сильно заранее, и поэтому не могут быть добавлены в СКУД-системы ни на этапе конфигурирования, ни в процессе работы. Данная системка заменяет бумажный журнал учёта посетителей и сделана максимально простой, понятной даже минимально обученным охранникам. Это позволяет избежать утрат журналов посетителей и использования столь сложных для освоения охранниками программ, как Excel / Libreoffice Calc.
0). Подготовьте минимальный веб-сервер с поддержкой PHP и MySQL. Например, по вот этому мануалу:
Системные требования - любые, где сможете запустить. По софту - рекомендуется Linux / BSD актуальных версий, nginx, php8, mysql На PHP5 и PHP7 тоже должно работать. Windows тоже можно, но не проверялось.
1). Скопируйте содержимое каталога www из архива в каталог веб-хоста
2). Восстановите из файла gatehouse.sql
дамп базы данных gatehouse
Если вам нужные примеры тестовых записей, выполните в базе скрипт
gatehouse-example_data.sql
3). Создайте в базе данных mysql-пользователя и назначьте ему права доступа:
CREATE USER 'gatehouse'@'localhost' IDENTIFIED BY 'gatehousepassword';
GRANT SELECT,UPDATE,INSERT,DELETE ON gatehouse.* TO 'gatehouse'@'localhost';
При желании можете отозвать DELETE, он нужен только при удалении операторов. Пароль рекомендуется сгенерировать свой - длинный и случайный.
4). Откройте конфиг www/options.php
на сервере и проверьте, что там прописаны правильные параметры из шага 3
для соединения с базой данных.
Исправьте значение $db_add_rnd_key
в конфиге на длинную случайную строку.
Установите нужный язык интерфейса в параметре localization
из списка.
Пулл-реквесты с файлами новых локализаций приветствуются.
5). Откройте страничку веб-сервера в браузере и попробуйте залогиниться с пустым паролем под такими логинами: root admin user readonly
При первом логине будет предложено задать новые пароли.
Задайте пароли всем пользователям, добавьте новых пользователей. Добавьте на рабочие места охраны стартовую страницу / закладку, сообщите охранникам их пароли.
Ключевая идея - данные пишутся один раз, и после оформления выхода охранники не могут уже ничего испортить во введённых данных.
Бумажные журналы сонные охранники часто зливают чаем/кофе, а открытый по сети файл Excel часто бывает случайно или даже сознательно испорчен.
Проще было написать такую системку, чем пытаться научить охранников работать в Excel аккуратно.
-
Зачем она, если есть Excel / бумажный журнал / текстовый файлик ?
- Эти носители могут быть испорчены самими охранниками по собственной криворукости.
- для данной системки ёксель и виндовс не требуются, не надо предоставлять опасный файловый доступ, нет зависимостей от платного софта.
-
Можно ли использовать на мобилке / планшете ?
- Да, вполне.
-
Я забыл пароль админа/суперпользователя или отключил доступы. Как сбросить пароль / воосстановить права доступа ?
- Подключитесь к серверу по SSH, введите команду
mysql
для соединения с базой данных. Используйте root-пароль для MySQL. - выберите базу данных:
USE gatehouse;
- Просмотрите список операторов:
SELECT id, login FROM operators
- Для выбранного пользователя поставьте пустой пароль:
UPDATE operators SET password = 'da39a3ee5e6b4b0d3255bfef95601890afd80709' WHERE login = 'root'
- Включение логина пользователю и восстановления root-прав:
UPDATE operators SET enable = '1', is_root = '1' WHERE login = 'root'
- Залогиньтесь в веб-систему с пустым паролем и назначьте новый пароль.
- Подключитесь к серверу по SSH, введите команду
-
Как давно используется и почему не выкладывалась раньше ?
- Используется на некоторых проходных более 15 лет. Не выкладывалось потому, что это одна из моих первых разработок и за оформление кода несколько стыдно =)
-
Что за пользователи созданы по умолчанию ?
- Созданы пользрователи с 4 разными ролями. root - главный админ. Может управлять логинами и парамтерами, admin - может смотреть архив и менять настройки, user - может управлять открытыми записями за последние n дней, readonly - иожет только смотреть данные за последние n дней. В интерфейсе есть встроенная мини-справка.
-
Будет ли развитие системы ?
- Маловероятно. Но о багах / уязвимостях можно создать issue.
-
В чём суть и почему именно веб ?
- веб - кроссплатформенный. Суть в том, что охранники сильно ограничены в возможности внести совсем уже неправильные данные, и после закрытия записи не могут её удалить / испортить.
-
Можно ли использовать для нескольких проходных ?
- Да, не вопрос. Разделите проходные по логинам.
-
Надо ли чистить и обслуживать БД ?
- На ваш выбор, но вообще не обязательно. Можете с помощью веб-интерфейса типа
Adminer
удалить старые логи из двух таблиц.
- На ваш выбор, но вообще не обязательно. Можете с помощью веб-интерфейса типа
-
Мне нужна новая/дополнительная опция.
- Кнопка [Fork].