92 lines
11 KiB
Markdown
92 lines
11 KiB
Markdown
# Krona Staff Terminal
|
||
|
||
Локальный терминал учёта прихода для USB-сканеров ZKTeco/BioLink SLK20R и ZKFinger SDK 5.3.
|
||
|
||
## Возможности
|
||
|
||
- повторный поиск сканеров по кнопке, ручной выбор одного из подключённых устройств и автоматический переход на рабочее устройство;
|
||
- первичная настройка PIN и добавление первого сотрудника-администратора без подключённого сканера;
|
||
- добавление и редактирование сотрудников с должностью, полом и правами администратора без потери отпечатков и журнала;
|
||
- несколько отпечатков у одного сотрудника, каждый регистрируется по трём последовательным сканам;
|
||
- чередование событий «Приход» и «Уход»;
|
||
- настраиваемая защита от повторного сканирования, по умолчанию 120 секунд;
|
||
- локальный журнал последних отметок;
|
||
- экспорт журнала в CSV и резервные копии зашифрованного состояния;
|
||
- защищённая очистка журнала без удаления сотрудников и отпечатков;
|
||
- приватный режим, скрывающий полные имена на публичном экране;
|
||
- личные уведомления сотрудников через Telegram, сообщения сообщества ВКонтакте и MAX;
|
||
- блокировка сотрудника с отключением его отпечатков и безвозвратным удалением локальных привязок мессенджеров;
|
||
- автозагрузка сразу в системный трей и постоянное фоновое сканирование, даже когда открыта другая программа;
|
||
- закрытый экран входа, скрывающий сотрудников, журнал и настройки до проверки PIN или отпечатка администратора;
|
||
- автоматическая блокировка всей программы при запуске, сворачивании и ручной блокировке;
|
||
- автоматическая блокировка административного раздела через 5 минут бездействия;
|
||
- шифрование сотрудников, токенов и шаблонов отпечатков средствами Windows DPAPI.
|
||
- проверка новых релизов Forgejo при запуске и каждые шесть часов;
|
||
- загрузка обновления только после входа администратора и обязательной проверки SHA-256.
|
||
|
||
Исходное изображение пальца не сохраняется. Шаблон отпечатка хранится только локально и может быть расшифрован текущей учётной записью Windows.
|
||
|
||
## Запуск
|
||
|
||
Требуются Windows 10/11 x64, драйвер SLK20R и ZKFinger SDK 5.3. Сборка и запуск из корня репозитория:
|
||
|
||
```powershell
|
||
dotnet run --project apps/KronaStaffTerminal/KronaStaffTerminal.csproj -c Debug -p:Platform=x64 --launch-profile "KronaStaffTerminal (Unpackaged)"
|
||
```
|
||
|
||
Для обычной установки скачайте из раздела Releases файл
|
||
`KronaStaffTerminal-Setup-<версия>.exe`. В конце установки можно открыть
|
||
[официальную страницу ZKFinger SDK для Windows](https://www.zkteco.com/en/Biometrics_Module_SDK/ZKFinger-SDK-for-Windows),
|
||
где находится драйвер совместимого сканера SLK20R.
|
||
|
||
Драйвер не включается внутрь платного продукта: EULA из полученного SDK разрешает
|
||
распространение в составе только бесплатных или некоммерческих пакетов. Для
|
||
коммерческого комплекта требуется отдельное письменное право распространения от
|
||
ZKTeco. Уже установленный драйвер продолжает работать как обычно.
|
||
|
||
## Первый сотрудник
|
||
|
||
1. Откройте вкладку «Сотрудники» и при первом входе создайте PIN длиной не менее шести символов.
|
||
2. Введите табельный номер и имя, отметьте «Администратор терминала», затем нажмите «Добавить».
|
||
3. Выберите сотрудника в списке и нажмите «Добавить отпечаток».
|
||
4. Трижды приложите один и тот же палец, убирая его со стекла после каждого принятого скана.
|
||
5. Для регистрации другого пальца повторно нажмите «Добавить отпечаток».
|
||
|
||
После регистрации вкладка «Терминал» постоянно ожидает отпечаток. Первое сканирование создаёт «Приход», следующее после защитного интервала — «Уход», в том числе после полуночи в пределах настроенной максимальной длительности смены. Удержание пальца и повторное прикладывание в течение защитного интервала не создают новое событие.
|
||
|
||
## Администратор и работа в фоне
|
||
|
||
1. Вкладки «Сотрудники» и «Уведомления и сканер» открываются только после входа администратора.
|
||
2. Для входа достаточно PIN либо зарегистрированного отпечатка администратора.
|
||
3. Кнопка «Заблокировать» и сворачивание скрывают весь интерфейс до повторного входа. Пять минут бездействия закрывают административные вкладки, не останавливая рабочий терминал.
|
||
|
||
После первичной настройки добавление сотрудников, регистрация и удаление отпечатков, изменение прав, уведомлений и параметров сканера доступны только в административном сеансе. Крестик скрывает окно в системный трей, сканер продолжает работать. Двойной щелчок по значку возвращает окно. Автозагрузка включается администратором в настройках.
|
||
|
||
При блокировке Windows (`Win+L`) терминал продолжает работать. При полном выходе
|
||
из учётной записи Windows система завершает все пользовательские программы, поэтому
|
||
сканирование останавливается до следующего входа. Для работы вообще без открытого
|
||
сеанса потребуется отдельная Windows-служба сканера.
|
||
|
||
## Уведомления
|
||
|
||
На вкладке «Уведомления и сканер» включите нужные каналы и укажите токены ботов. Затем выберите сотрудника, нажмите «Личные уведомления» и сохраните его личный `chat_id` Telegram, `peer_id` ВКонтакте или `user_id` MAX. Сотрудник должен предварительно начать личный диалог с ботом или разрешить сообщения сообщества. Кнопка «Тест выбранному сотруднику» отправляет сообщение только этому человеку. При успешной отметке сотрудник получает дату, время и тип собственного события без имени и данных других сотрудников.
|
||
|
||
При блокировке сотрудника его личные идентификаторы удаляются из зашифрованного хранилища, отпечатки перестают создавать отметки, а отправка прекращается. После разблокировки каналы необходимо привязать заново. Удалить весь диалог из приложения мессенджера на устройстве сотрудника бот не может; уже доставленная история остаётся под управлением самого пользователя и соответствующего мессенджера.
|
||
|
||
## Обновления
|
||
|
||
Пока репозиторий приватный, администратор терминала указывает в настройках токен
|
||
Forgejo только с правом чтения репозитория. Токен хранится вместе с остальными
|
||
настройками в зашифрованном Windows DPAPI-файле текущего пользователя и не
|
||
встраивается в программу. Источник обновлений реализован отдельным адаптером:
|
||
впоследствии Forgejo можно заменить публичным портом Бизнес Платформы.
|
||
|
||
Для сборки установщика и двух файлов релиза:
|
||
|
||
```powershell
|
||
.\scripts\build-terminal-release.ps1
|
||
```
|
||
|
||
Скрипт публикует x64-приложение, создаёт установщик NSIS и соседний файл
|
||
`.sha256`. В релиз нужно загружать оба файла; без контрольной суммы встроенное
|
||
обновление откажется запускать установщик.
|