diff --git a/Dev_Docs/API/03_Session_Management_API.md b/Dev_Docs/API/03_Session_Management_API.md index 3bd2aa5..0c2a8df 100644 --- a/Dev_Docs/API/03_Session_Management_API.md +++ b/Dev_Docs/API/03_Session_Management_API.md @@ -267,6 +267,7 @@ K9v3nQ4u8jYk0a2p7cD4mLx1zR0sT5wV6bN8eH3fQ1M ### 5.3. `ListEspPairingRequests` Доступно для любой уже авторизованной доверенной сессии пользователя. +Возвращает только реально активные pending-заявки со `state = created`. Уже `approved` и `rejected` заявки в этот список больше не попадают. ### Успешный ответ diff --git a/Dev_Docs/Протоколы/ESP_Pairing_и_режимы_подключения.md b/Dev_Docs/Протоколы/ESP_Pairing_и_режимы_подключения.md index e9a44a7..df1ffa7 100644 --- a/Dev_Docs/Протоколы/ESP_Pairing_и_режимы_подключения.md +++ b/Dev_Docs/Протоколы/ESP_Pairing_и_режимы_подключения.md @@ -59,7 +59,7 @@ ## 3. Что именно делает сервер - хранит включённость pairing и optional opaque `passwordHash`; -- хранит pending/approved/rejected pairing-заявки; +- хранит pairing-заявки всех статусов, но в список активных для доверённого устройства отдаёт только pending `created`; - рассчитывает короткий код `shortCode` из `7` цифр; - рассчитывает длинный `fingerprintB58` из `SHA-256` заявки; - уведомляет онлайн доверенные сессии событием `IncomingEspPairingRequest`, если такие сессии подключены; diff --git a/SHiNE-server/shine-server-db/src/main/java/shine/db/dao/EspPairingRequestsDAO.java b/SHiNE-server/shine-server-db/src/main/java/shine/db/dao/EspPairingRequestsDAO.java index 0aaede8..beff033 100644 --- a/SHiNE-server/shine-server-db/src/main/java/shine/db/dao/EspPairingRequestsDAO.java +++ b/SHiNE-server/shine-server-db/src/main/java/shine/db/dao/EspPairingRequestsDAO.java @@ -112,7 +112,7 @@ public final class EspPairingRequestsDAO { FROM esp_pairing_requests WHERE login = ? COLLATE NOCASE AND expires_at_ms > ? - AND status IN ('created', 'approved', 'rejected') + AND status = 'created' ORDER BY created_at_ms DESC """; List list = new ArrayList<>(); diff --git a/SHiNE-server/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/auth/Net_StartEspPairing_Handler.java b/SHiNE-server/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/auth/Net_StartEspPairing_Handler.java index 4e32f11..f7b2c2f 100644 --- a/SHiNE-server/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/auth/Net_StartEspPairing_Handler.java +++ b/SHiNE-server/shine-server-net-protocol/src/main/java/server/logic/ws_protocol/JSON/handlers/auth/Net_StartEspPairing_Handler.java @@ -63,7 +63,7 @@ public class Net_StartEspPairing_Handler implements JsonMessageHandler { String canonicalLogin = user.getLogin(); EspPairingSettingsEntry settings = EspPairingSettingsDAO.getInstance().getByLogin(canonicalLogin); - if (settings == null || !settings.isEnabled() || settings.getPasswordHash() == null || settings.getPasswordHash().isBlank()) { + if (settings == null || !settings.isEnabled()) { return NetExceptionResponseFactory.error(req, 422, "PAIRING_NOT_AVAILABLE", "Для этого login pairing недоступен"); } diff --git a/VERSION.properties b/VERSION.properties index cb06f40..1df7483 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ -client.version=1.2.196 -server.version=1.2.185 +client.version=1.2.197 +server.version=1.2.186 diff --git a/shine-UI/js/app.js b/shine-UI/js/app.js index 88065e2..618684d 100644 --- a/shine-UI/js/app.js +++ b/shine-UI/js/app.js @@ -55,7 +55,7 @@ import * as serverSettingsView from './pages/server-settings-view.js'; import * as toolsSettingsView from './pages/tools-settings-view.js'; import * as deviceView from './pages/device-view.js?v=202606131435'; import * as connectDeviceView from './pages/connect-device-view.js?v=202606142055'; -import * as devicePairingView from './pages/device-pairing-view.js?v=202606150010'; +import * as devicePairingView from './pages/device-pairing-view.js?v=202606150030'; import * as deviceQrView from './pages/device-qr-view.js'; import * as deviceCameraView from './pages/device-camera-view.js'; import * as showKeysView from './pages/show-keys-view.js'; diff --git a/shine-UI/js/pages/device-pairing-view.js b/shine-UI/js/pages/device-pairing-view.js index 7e28ae5..932b522 100644 --- a/shine-UI/js/pages/device-pairing-view.js +++ b/shine-UI/js/pages/device-pairing-view.js @@ -102,7 +102,7 @@ export function render({ navigate }) { -

Пароль хранится на сервере только в виде hash. После включения можно переходить к заявкам ниже.

+

Чтобы включить pairing без пароля: оставьте галочку выключенной и нажмите `Включить / обновить`. Чтобы включить pairing с паролем: включите галочку, введите пароль и нажмите ту же кнопку.

`; const keySummaryCard = document.createElement('div');