Подмена личности в НРД: понятный статус (кого→на кого) и явная кнопка «Выключить»

Было: на «Эмуляторы» баннер «Эмулятор НРД включён ... переключатель не выключает», и ни слова,
что для клиентов из 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 <noreply@anthropic.com>
This commit is contained in:
fontvielle
2026-10-13 15:37:34 +03:00
parent 2d2fbb6732
commit 6ca556c2fc
4 changed files with 36 additions and 2 deletions
+9 -2
View File
@@ -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)
})