Раздел «Ручной ввод M2M» по бумажным поручениям; тестовые тексты и имитации убраны из клиентского интерфейса
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+21
-16
@@ -138,6 +138,7 @@ func (h *setupHandlers) renderNews(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
s := h.rc.Snapshot()
|
||||
s.News.Items = visibleNews(h.rc, s.News.Items)
|
||||
data := struct {
|
||||
page
|
||||
Settings Settings
|
||||
@@ -271,7 +272,7 @@ func (h *setupHandlers) testSignCrypto(w http.ResponseWriter, r *http.Request) {
|
||||
payload := []byte("<bj-test ts=\"" + time.Now().UTC().Format(time.RFC3339) + "\">Bridge-and-Join-s sign smoke test</bj-test>")
|
||||
sig, err := cli.SignXMLDSig(r.Context(), payload, "", s.Crypto.Profile)
|
||||
if err != nil {
|
||||
setupFlash(w, r, "Тестовая подпись не удалась: "+err.Error())
|
||||
setupFlash(w, r, "Пробная подпись не удалась: "+err.Error())
|
||||
return
|
||||
}
|
||||
outPath := "/var/lib/bj/.bj/test-sign.p7s"
|
||||
@@ -282,7 +283,7 @@ func (h *setupHandlers) testSignCrypto(w http.ResponseWriter, r *http.Request) {
|
||||
if len(b64Preview) > 80 {
|
||||
b64Preview = b64Preview[:80] + "..."
|
||||
}
|
||||
setupFlash(w, r, fmt.Sprintf("Тестовая подпись OK: CMS detached, %d байт. Сохранена в %s. Префикс base64: %s",
|
||||
setupFlash(w, r, fmt.Sprintf("Пробная подпись OK: CMS detached, %d байт. Сохранена в %s. Префикс base64: %s",
|
||||
len(sig), outPath, b64Preview))
|
||||
}
|
||||
|
||||
@@ -388,7 +389,7 @@ func (h *setupHandlers) savePostgres(w http.ResponseWriter, r *http.Request) {
|
||||
// Лёгкая проверка: попытка sql.Open и Ping (без драйвера дальше
|
||||
// просто ошибка — это нормально, важно показать что DSN сохранён).
|
||||
if err := tryPingPostgres(dsn); err != nil {
|
||||
setupFlash(w, r, "postgres: тест соединения упал: "+err.Error())
|
||||
setupFlash(w, r, "postgres: проверка соединения не прошла: "+err.Error())
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -758,7 +759,11 @@ func (h *setupHandlers) lkPull(w http.ResponseWriter, r *http.Request) {
|
||||
msg := fmt.Sprintf("Забор заявок из ЛК: получено %d, отправлено в НРД %d, отклонено %d", res.Fetched, res.Sent, res.Rejected)
|
||||
if res.Emulated {
|
||||
_, why := lkEmulateNSD(h.rc)
|
||||
msg = fmt.Sprintf("Забор заявок из ЛК (имитация НРД — %s): получено %d, прошли сверку и переданы имитатору %d, отклонены сверкой %d", why, res.Fetched, res.Sent, res.Rejected)
|
||||
if devMode(h.rc) {
|
||||
msg = fmt.Sprintf("Забор заявок из ЛК (имитация НРД — %s): получено %d, прошли сверку и переданы имитатору %d, отклонены сверкой %d", why, res.Fetched, res.Sent, res.Rejected)
|
||||
} else {
|
||||
msg = fmt.Sprintf("Забор заявок из ЛК (без отправки в НРД — %s): получено %d, прошли сверку %d, отклонены сверкой %d", why, res.Fetched, res.Sent, res.Rejected)
|
||||
}
|
||||
}
|
||||
if len(res.Errors) > 0 {
|
||||
msg += " · ошибки: " + strings.Join(res.Errors, "; ")
|
||||
@@ -800,17 +805,17 @@ func (h *setupHandlers) testAlertsSMTP(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
a := h.rc.Snapshot().Alerts
|
||||
err := sendSMTP(a.SMTP, "[bj] Проверка уведомлений", "Это тестовое письмо от bj-server. Если вы его получили — SMTP-канал оповещений работает.")
|
||||
err := sendSMTP(a.SMTP, "[bj] Проверка уведомлений", "Это проверочное письмо от bj-server. Если вы его получили — SMTP-канал оповещений работает.")
|
||||
a.SMTP.LastAt = time.Now()
|
||||
if err != nil {
|
||||
a.SMTP.LastMsg = "ошибка: " + err.Error()
|
||||
_ = h.rc.UpdateAlerts(a)
|
||||
setupFlash(w, r, "Тест SMTP: "+err.Error())
|
||||
setupFlash(w, r, "Проверка SMTP: "+err.Error())
|
||||
return
|
||||
}
|
||||
a.SMTP.LastMsg = "тестовое письмо отправлено"
|
||||
a.SMTP.LastMsg = "проверочное письмо отправлено"
|
||||
_ = h.rc.UpdateAlerts(a)
|
||||
setupFlash(w, r, "Тест SMTP: письмо отправлено на "+a.SMTP.To)
|
||||
setupFlash(w, r, "Проверка SMTP: письмо отправлено на "+a.SMTP.To)
|
||||
}
|
||||
|
||||
// saveAlertsZabbix сохраняет настройки Zabbix-хука.
|
||||
@@ -848,12 +853,12 @@ func (h *setupHandlers) testAlertsZabbix(w http.ResponseWriter, r *http.Request)
|
||||
if err != nil {
|
||||
a.Zabbix.LastMsg = "ошибка: " + err.Error()
|
||||
_ = h.rc.UpdateAlerts(a)
|
||||
setupFlash(w, r, "Тест Zabbix: "+err.Error())
|
||||
setupFlash(w, r, "Проверка Zabbix: "+err.Error())
|
||||
return
|
||||
}
|
||||
a.Zabbix.LastMsg = "принято: " + info
|
||||
_ = h.rc.UpdateAlerts(a)
|
||||
setupFlash(w, r, "Тест Zabbix: сервер принял значение ("+info+")")
|
||||
setupFlash(w, r, "Проверка Zabbix: сервер принял значение ("+info+")")
|
||||
}
|
||||
|
||||
// saveIncomingNotify сохраняет настройки уведомлений депозитарию о входящих.
|
||||
@@ -894,26 +899,26 @@ func (h *setupHandlers) testIncomingNotify(w http.ResponseWriter, r *http.Reques
|
||||
}
|
||||
cfg := h.rc.Snapshot()
|
||||
if strings.TrimSpace(cfg.Incoming.Recipients("incoming")) == "" {
|
||||
setupFlash(w, r, "Тест: сначала укажите почту депозитария")
|
||||
setupFlash(w, r, "Проверка: сначала укажите почту депозитария")
|
||||
return
|
||||
}
|
||||
smtp := cfg.Alerts.SMTP
|
||||
if !smtp.Enabled || strings.TrimSpace(smtp.Host) == "" {
|
||||
setupFlash(w, r, "Тест: сначала настройте и включите SMTP (раздел «Почта»)")
|
||||
setupFlash(w, r, "Проверка: сначала настройте и включите SMTP (раздел «Почта»)")
|
||||
return
|
||||
}
|
||||
sample := &IncomingTransfer{
|
||||
GUID: "00000000-0000-0000-0000-000000000000",
|
||||
SenderCode: "MC0012500000", SenderINN: "7722061076",
|
||||
SenderCode: "MC0000000000", SenderINN: "0000000000", // обезличенный образец
|
||||
ReceivedAt: time.Now(),
|
||||
Securities: []IncomingSecurity{{SecurityCode: "RU0009029540", ISIN: "RU0009029540", Quantity: "10"}},
|
||||
}
|
||||
smtp.To = cfg.Incoming.Recipients("incoming")
|
||||
if err := sendSMTP(smtp, "[ТЕСТ] MOEX МОСТ (M2M): к вам переведены ценные бумаги — требуется учёт", buildIncomingEmailBody(sample)); err != nil {
|
||||
setupFlash(w, r, "Тест уведомления депозитарию: "+err.Error())
|
||||
if err := sendSMTP(smtp, "[ПРОВЕРКА] MOEX МОСТ (M2M): к вам переведены ценные бумаги — требуется учёт", buildIncomingEmailBody(sample)); err != nil {
|
||||
setupFlash(w, r, "Проверка уведомления депозитарию: "+err.Error())
|
||||
return
|
||||
}
|
||||
setupFlash(w, r, "Тест: письмо-уведомление отправлено на "+cfg.Incoming.Recipients("incoming"))
|
||||
setupFlash(w, r, "Проверка: письмо-уведомление отправлено на "+cfg.Incoming.Recipients("incoming"))
|
||||
}
|
||||
|
||||
// lkPostJSON — POST JSON к API ЛК с Basic; возвращает (код, тело).
|
||||
|
||||
Reference in New Issue
Block a user