Files
Bridge-and-Join-s/internal/lkgateway/uiclient.go
fontvielle f1065e369a Интерфейс клиента без технических подробностей; дубли убраны
Техника — только в режиме разработчика (devOn):
- версии: клиенту — bj, шлюз НРД, СКЗИ, QUIK, DEPO, без «Подробностей»
  (Java, bj-crypto, пути, установщик, ОС, PostgreSQL — разработчикам)
- Криптография: строки crypto-service/java, параметры провайдера и сокет,
  серийные номера, журнал сверки (клиенту — только при ошибке), дамп справочника
  и путь nsd-certs; убрана карточка «Ключ организации» — дубль сводки
- НРД: строка версии ИШ (дубль сводки), «Расширенные» (адреса, контейнеры,
  config.xml), имя профиля ключа, адрес канала; контур по-русски
- Обновления: имена файлов и служб, адрес артефактории и ключ издателя
- Диагностика: имена служб и сырые состояния; справочник участников — без кодов
- ключи ролей и модулей лицензии, путь users.json, DSN/Ping/in-memory, FTV_M2M,
  путь Валидаты и служба bj-crypto в мастере, «проверена ZETIT», Samba

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-21 23:44:52 +03:00

51 lines
2.2 KiB
Go

package lkgateway
// uiclient.go — что интерфейс показывает клиенту, а что только в режиме разработчика (devOn).
// Клиенту — состояние и действия; версии сторонних систем — только те, о которых спрашивает
// поддержка НРД и Московской биржи. Пути, службы, Java, внутренние модули — разработчикам.
import "strings"
// clientVersionTitles — версии для клиента и их названия без внутренних имён.
var clientVersionTitles = map[string]string{
"bj-server": "bj",
"ish": "Шлюз НРД",
"validata": "СКЗИ «Валидата Клиент L»",
"quik-mnp": "QUIK — модуль неторговых поручений",
"depo": "Fancy DEPO",
}
func clientVersion(key string) bool { _, ok := clientVersionTitles[key]; return ok }
// versionTitle — название строки версии: разработчику — полное (с внутренним именем), клиенту — простое.
func versionTitle(v SystemVersion) string {
if t, ok := clientVersionTitles[v.Key]; ok && !devMode(globalRC) {
return t
}
return v.Title
}
// contourRu — контур НРД по-русски (prod-gost, test3, manual… → «боевой», «тестовый (TEST3)»).
func contourRu(s string) string {
l := strings.ToLower(strings.TrimSpace(s))
switch {
case strings.HasPrefix(l, "prod"):
return "боевой"
case strings.HasPrefix(l, "test"):
return "тестовый (TEST3)"
case strings.HasPrefix(l, "guest"):
return "гостевой"
case l == "manual":
return "добавлен вручную"
case l == "":
return "—"
}
return s
}
// looksErr — в журнале есть ошибка (журнал клиенту показываем только тогда).
func looksErr(s string) bool {
l := strings.ToLower(s)
return strings.Contains(l, "ошиб") || strings.Contains(l, "не удалось") || strings.Contains(l, "error") || strings.Contains(l, "откат")
}