From 6ca556c2fc8a589a8aa0aa84bbac4181d8f5eda8 Mon Sep 17 00:00:00 2001 From: fontvielle Date: Tue, 13 Oct 2026 15:37:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=BC=D0=B5=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=87=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=B2=20?= =?UTF-8?q?=D0=9D=D0=A0=D0=94:=20=D0=BF=D0=BE=D0=BD=D1=8F=D1=82=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=20(=D0=BA?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=E2=86=92=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE)=20=D0=B8=20=D1=8F=D0=B2=D0=BD=D0=B0=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=BD=D0=BE=D0=BF=D0=BA=D0=B0=20=C2=AB=D0=92=D1=8B=D0=BA=D0=BB?= =?UTF-8?q?=D1=8E=D1=87=D0=B8=D1=82=D1=8C=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Было: на «Эмуляторы» баннер «Эмулятор НРД включён ... переключатель не выключает», и ни слова, что для клиентов из real_nsd_test заявки идут МИМО имитатора в реальный TEST3 с подменой — и выключить это оттуда нельзя (переключатель на другой странице). Пользователь не находил, как снять. Теперь: - /admin/emulators: при включённой подмене — заметный блок «Подмена личности в НРД включена»: по каким паспортам, в какой контур (TEST3) и от чьего имени (тест-инвестор) уходит запрос, плюс кнопка «Выключить подмену личности» прямо здесь. - /admin/m2m-testing: карточка real-nsd показывает «Сейчас подменяет: паспорт X → как Y» и отдельную кнопку «Выключить подмену» (одним кликом), помимо чекбокса включения/списка. - обработчик /admin/setup/lk-real-nsd honor-ит поле back и возвращает на страницу-источник, список паспортов при выключении сохраняется (docs передаётся скрытым полем). Co-Authored-By: Claude Opus 4.8 --- internal/lkgateway/emulators.go | 6 ++++++ internal/lkgateway/realtest.go | 11 +++++++++-- .../lkgateway/web/templates/admin_emulators.html | 14 ++++++++++++++ .../lkgateway/web/templates/admin_m2mtest.html | 7 +++++++ 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/internal/lkgateway/emulators.go b/internal/lkgateway/emulators.go index c3e0274..575fddf 100644 --- a/internal/lkgateway/emulators.go +++ b/internal/lkgateway/emulators.go @@ -47,6 +47,9 @@ func registerEmulators(mux *http.ServeMux, a *admin, rc *RuntimeConfig) { NSDFlag bool NSD NSDEmuSettings RejectCodes []emuRejectOption + RealNSDOn bool + RealNSDDocs string + RealNSDAs string QuikEmuOn bool QuikMode string QuikRealCode string @@ -57,6 +60,9 @@ func registerEmulators(mux *http.ServeMux, a *admin, rc *RuntimeConfig) { NSDEmuOn: nsdOn, NSDEmuWhy: nsdWhy, NSDFlag: s.LK.EmulateNSD, + RealNSDOn: s.LK.RealNSDTest.Enabled, + RealNSDDocs: s.LK.RealNSDTest.Docs, + RealNSDAs: realNSDAsText(), NSD: s.NSDEmu.Defaults(), RejectCodes: emuRejectOptions(), QuikEmuOn: s.Quik.Emulate && devMode(rc), diff --git a/internal/lkgateway/realtest.go b/internal/lkgateway/realtest.go index 00303e8..0445877 100644 --- a/internal/lkgateway/realtest.go +++ b/internal/lkgateway/realtest.go @@ -230,8 +230,15 @@ func registerRealNSDTest(mux *http.ServeMux, rc *RuntimeConfig) { } log.Printf("real-test: %v, клиенты: %s", lk.RealNSDTest.Enabled, lk.RealNSDTest.Docs) back := "/admin/setup" - if ref := r.Referer(); strings.Contains(ref, "/admin/m2m-testing") { - back = "/admin/m2m-testing" + switch b := r.FormValue("back"); b { + case "/admin/m2m-testing", "/admin/emulators", "/admin/setup": + back = b + default: + if ref := r.Referer(); strings.Contains(ref, "/admin/m2m-testing") { + back = "/admin/m2m-testing" + } else if strings.Contains(ref, "/admin/emulators") { + back = "/admin/emulators" + } } http.Redirect(w, r, back+"#lk-real-nsd", http.StatusSeeOther) }) diff --git a/internal/lkgateway/web/templates/admin_emulators.html b/internal/lkgateway/web/templates/admin_emulators.html index 871a115..aea37ea 100644 --- a/internal/lkgateway/web/templates/admin_emulators.html +++ b/internal/lkgateway/web/templates/admin_emulators.html @@ -16,6 +16,20 @@ {{if and .NSDEmuOn (ne .NSDEmuWhy "включена в настройках")}}

Сейчас имитация действует принудительно: {{.NSDEmuWhy}} — переключатель её не выключает.

{{end}} + {{if .RealNSDOn}} +
+ ⚠ Подмена личности в НРД включена — для этих клиентов имитатор НЕ используется.
+ Заявки по паспорту(ам) {{.RealNSDDocs}} уходят в реальный тестовый НРД (TEST3) с подменой на тест-инвестора {{.RealNSDAs}} (запрос отправляется от его имени; GUID, бумаги и счета настоящие, DEPO и QUIK МНП — боевые). Поэтому ответ приходит не от имитатора, а от реального НРД — и если на той стороне никто не отвечает, заявка ждёт. + {{if can "settings"}} +
+ + + +
+

Настроить список клиентов — на странице «Тестирование M2M».

+ {{end}} +
+ {{end}}