Пароль домена не попадает в страницу; домен в мастере — открыт, крупно, группы; справочник DEPO без переводов; 1С — бэк-офис

- Безопасность: в мастере подпись к паролю выводила сам сохранённый пароль служебной записи домена — теперь только «задан/введён» (тест: пароль не попадает в HTML). Список сессий в настройках больше не содержит токены (по ним можно было войти под чужим именем) — короткий ID.
- Домен: после подключения и «Доверять» блок остаётся открытым, страница возвращается к нему; карточка «Домен подключён» и «Найден домен» — крупно; поиск сотрудников и групп; группе — доступ с ролью (ADGroups), список групп с «убрать».
- «Обмен с DEPO»: справочник FTV_M2M_HANDBOOK считается и когда переводов ещё нет (на свежей установке писало «не создана»).
- Модуль 1С: onec-back «1С: база бэк-офиса (тест)» вместо мидл-офиса (в лицензиях не выдавался).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-10-07 01:19:30 +03:00
parent 13a7be17ef
commit 73b246831c
13 changed files with 238 additions and 71 deletions
+25
View File
@@ -87,3 +87,28 @@ func TestADConnectKeepsDraftAndTrust(t *testing.T) {
t.Fatal("сертификат не запомнен в черновике")
}
}
// Группа домена из мастера: доступ с ролью, повтор меняет роль (без дублей), «убрать» — снимает.
func TestADGroupSave(t *testing.T) {
rc := testRC(t)
h := &setupHandlers{rc: rc}
post := func(v url.Values) {
w := httptest.NewRecorder()
r := httptest.NewRequest(http.MethodPost, "/admin/setup/users/ad-group", strings.NewReader(v.Encode()))
r.Header.Set("Content-Type", "application/x-www-form-urlencoded")
h.adGroupSave(w, r)
}
post(url.Values{"group": {"Depo"}, "role": {"operator"}})
post(url.Values{"group": {"depo"}, "role": {"viewer"}})
g := rc.Snapshot().Auth.ADGroups
if len(g) != 1 || g[0].Role != "viewer" {
t.Fatalf("группы: %+v", g)
}
if adGroupRoleOf(rc.Snapshot().Auth, "DEPO") != "viewer" {
t.Fatal("роль группы не находится")
}
post(url.Values{"group": {"Depo"}, "remove": {"1"}})
if len(rc.Snapshot().Auth.ADGroups) != 0 {
t.Fatal("группа не убрана")
}
}