Релиз v2.6.1: Гибкие права доступа, новый интерфейс и переработка ключевых функций
Этот релиз является одним из самых значительных в истории проекта. Мы не только кардинально обновили внешний вид приложения, но и внедрили гибкую систему управления правами доступа, полностью переработали ключевые механизмы, такие как архив записей и обнаружение камер, а также исправили критические ошибки, которые мешали стабильной работе.
✨ Новые возможности и ключевые улучшения
- Гибкая система управления правами доступа (Permissions)
Мы перешли от жестких ролей к полноценной системе разрешений, что превращает приложение в многопользовательскую платформу с настраиваемыми уровнями доступа.
Проблема: Старая система имела только две роли: "Администратор" (может всё) и "Оператор" (может очень мало).
Решение: Теперь администратор может тонко настраивать права для каждого пользователя с ролью "Оператор" индивидуально. В специальном модальном окне можно разрешить или запретить такие действия, как:
Просмотр архива
Экспорт записей из архива
Добавление, редактирование и удаление камер
Доступ к настройкам камер
Управление сеткой и раскладками
Результат: Полный контроль над действиями пользователей, повышение безопасности и гибкости использования.
P.S. По умолчанию в системе присутствует пользователь "Администратор" с логином/паролем : admin/admin - Современный безрамочный интерфейс
Приложение избавилось от стандартной рамки окна операционной системы, что обеспечивает более чистый и целостный пользовательский опыт.
Безрамочный дизайн: Интерфейс стал более лаконичным и современным.
Пользовательские элементы управления окном: В заголовок интегрированы кастомные кнопки для сворачивания, разворачивания и закрытия приложения.
Перетаскиваемый заголовок: Вся область заголовка (за исключением кнопок) теперь является перетаскиваемой.
SSH-терминал: Добавлена интеграция с буфером обмена (Копирование/Вставка через Ctrl+Shift+C / Ctrl+Shift+V). - Масштабируемый и интерактивный архив
Функциональность архива записей была полностью переработана, чтобы сделать его мощным и удобным инструментом.
Масштабирование временной шкалы: Теперь вы можете приближать и отдалять временную шкалу с помощью колеса мыши.
Точное выделение: Масштабирование позволяет с максимальной точностью выделить нужный фрагмент для экспорта.
Динамические метки: Метки времени на шкале автоматически адаптируются под выбранный масштаб. - Надежное обнаружение камер в сети (ONVIF Discovery)
Механизм поиска камер был полностью заменен на более эффективный и стабильный.
Проблема: Старый метод поиска через UDP-рассылку был ненадежен и часто блокировался брандмауэрами.
Решение: Реализован новый метод, который последовательно сканирует все IP-адреса в локальных подсетях и пытается установить прямое ONVIF-соединение.
Результат: Этот подход позволяет находить камеры даже в сетях со строгими настройками безопасности.
✅ Исправления критических ошибок
Исправлена бесконечная "потеря связи" при подключении к камере. Логика сохранения была изменена, и теперь пароль не затирается пустой строкой при редактировании камеры.
Исправлена рассинхронизация времени в архиве. Приложение теперь корректно обрабатывает часовые пояса и синхронизирует временную шкалу с реальным временем записи.
Исправлено некорректное отображение потребления ресурсов (ЦП и ОЗУ). Теперь приложение суммирует метрики со всех своих дочерних процессов, отображая точные данные.
Исправлена проблема с отображением записей в архиве. Устранена ошибка парсинга формата даты из имени файла, и теперь все записи корректно отображаются.
🛠️ Внутренние улучшения
Надежный менеджер состояний: Улучшена логика управления состоянием приложения для предотвращения гонок состояний и повышения предсказуемости кода.
Корректное удаление камер: Функция удаления камер теперь работает надежно и корректно сохраняет все изменения в конфигурации.
🚀 Что дальше?
Теперь, когда визуальная составляющая и ключевые функции стабилизированы, мы возвращаемся к нашей дорожной карте и начинаем работу над системой уведомлений о событиях в реальном времени!
Текст для релиза на GitHub (на английском)
Release v2.6.1: Flexible Permissions, Modern UI & Major Feature Overhaul
This is one of the most significant releases in the project's history. We've not only given the application a major visual facelift with a modern, frameless design but have also introduced a flexible permission system, completely overhauled key features like the recordings archive and camera discovery, and fixed critical bugs that hindered stable operation.
✨ New Features & Key Improvements - Flexible Permission System for Users
We have moved from rigid roles to a full-fledged permission system, transforming the application into a multi-user platform with customizable access levels.
Problem: The old system had only two roles: "Administrator" (can do everything) and "Operator" (very limited).
Solution: Administrators can now finely tune permissions for each "Operator" user individually. A new modal allows enabling or disabling actions such as:
Viewing the archive
Exporting clips from the archive
Adding, editing, and deleting cameras
Accessing camera settings
Managing the grid and layouts
Result: Full control over user actions, enhanced security, and greater flexibility.
P.S. By default, the system has an "Administrator" user with login/password : admin/admin - Modern Frameless User Interface
The application now runs in a frameless window, shedding the native OS title bar for a cleaner, more integrated user experience.
Frameless Design: The interface is more streamlined and modern.
Custom Window Controls: Custom buttons for minimizing, maximizing, and closing are integrated directly into the header.
Draggable Header: The entire header area (except for interactive elements) is now draggable.
SSH Terminal: Added clipboard integration (Copy/Paste via Ctrl+Shift+C / Ctrl+Shift+V). - Scalable and Interactive Archive
The recordings archive has been completely re-engineered to be a powerful and user-friendly tool.
Timeline Zooming: You can now zoom in and out of the timeline using the mouse wheel.
Precise Selection: Zooming makes it much easier to select the exact clip you want to export.
Dynamic Labels: Timestamp labels on the timeline automatically adapt to the current zoom level. - Robust Network Camera Discovery (ONVIF)
The camera discovery mechanism has been replaced with a more effective and stable method.
Problem: The old method using UDP broadcast was unreliable and often blocked by firewalls.
Solution: A new method now scans all IP addresses in local subnets and attempts to establish a direct ONVIF connection.
Result: This approach finds cameras even on networks with strict security settings.
✅ Critical Bug Fixes
Fixed infinite "Connection lost" loop. The camera saving logic has been fixed to prevent accidentally overwriting the password with an empty string during edits.
Fixed time desynchronization in the archive. The application now correctly handles timezones, syncing the timeline with the actual recording time.
Fixed incorrect display of resource consumption (CPU & RAM). The app now aggregates metrics from all its child processes for accurate reporting.
Fixed an issue where recordings would not appear in the archive. Corrected a parsing error for the date-time format in filenames.
🛠️ Internal Improvements
Robust State Manager: The application's state management logic has been improved to prevent race conditions.
Reliable Camera Deletion: The camera deletion feature now works reliably and correctly saves configuration changes.