Канал ИШ: необязательные параметры — NULL (иначе ИШ молча выкидывал канал); мастер: шаг «Учётные записи», HTTPS сразу, DEPO без процедур — не блокирует
- bj-igate-admin: пустые строки в числовых/интервальных параметрах канала ИШ разбирал с ошибкой и не загружал канал («There are no active channels», API 500 «more than one Channel…»); теперь NULL, как пишет интерфейс ИШ; старые каналы чинятся при «Создать канал»; папка архивов 1042S — по имени - проверка «Шлюз НРД»: канал контура действительно загружен и включён (api/admin/channels/wsl) - «Учёт DEPO»: нет процедур bj2depo — жёлтое «не забудьте доустановить», не блокирует - HTTPS: перенаправление с http:// включено по умолчанию, только когда HTTPS реально слушает порт - мастер: шаг «Учётные записи» (роли, создание, «Придумать пароль») перед проверкой; письма с проверки убраны; форма «создать» не меняет существующую запись с тем же логином Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -682,6 +682,57 @@
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
{{/* ============= ШАГ 13: Учётные записи (глава «Запуск», перед проверкой) ============= */}}
|
||||
{{if eq .Step 13}}
|
||||
<div class="card">
|
||||
<h2><span class="dot {{if .Done.Users}}ok{{else}}warn{{end}}"></span>Учётные записи</h2>
|
||||
<p>У каждого, кто работает с bj, — своя учётная запись: свой пароль и свои права, а в журнале видно, кто что сделал. Заведите сотрудников по ролям; права, пароли и вход через Active Directory меняются позже в разделе Настройка → Пользователи.</p>
|
||||
<style>
|
||||
.acc-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 4px}
|
||||
.acc-role{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--border);border-radius:12px;cursor:pointer;font-weight:400;margin:0}
|
||||
.acc-role:has(input:checked){border-color:var(--accent);background:var(--accent-weak)}
|
||||
.acc-role input{margin-top:3px;flex:none;width:auto}
|
||||
.acc-role b{display:block;font-size:14.5px}
|
||||
.acc-role small{display:block;color:var(--muted);font-size:13px;line-height:1.4;margin-top:3px}
|
||||
.acc-role .acc-who{display:block;color:var(--text);font-size:12.5px;margin-top:6px}
|
||||
.acc-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:640px;margin-top:12px}
|
||||
.acc-form label{display:block;margin:0}
|
||||
.acc-form label input{width:100%;box-sizing:border-box;margin-top:4px}
|
||||
.acc-pw{display:flex;gap:6px;align-items:flex-end}
|
||||
@media (max-width:600px){.acc-roles,.acc-form{grid-template-columns:minmax(0,1fr)}}
|
||||
</style>
|
||||
{{with .Fancy}}{{$U := .Users}}
|
||||
<form method="post" action="/admin/setup/users" id="acc-form">
|
||||
<input type="hidden" name="return_to" value="/admin/wizard?step=13"><input type="hidden" name="create" value="1">
|
||||
<input type="hidden" name="active" value="1"><input type="hidden" name="source" value="local">
|
||||
<h3 style="margin:16px 0 0">Кого добавить</h3>
|
||||
<div class="acc-roles">
|
||||
{{range $r := $U.Roles}}
|
||||
<label class="acc-role"><input type="radio" name="role" value="{{$r.Key}}" {{if eq $r.Key "operator"}}checked{{end}}>
|
||||
<span><b>{{$r.Title}}</b><small>{{$r.Desc}}</small>
|
||||
<span class="acc-who">Уже есть: {{$n := 0}}{{range $U.Users}}{{if eq .Role $r.Key}}{{if $n}}, {{end}}{{$n = 1}}{{.Login}}{{if .Name}} ({{.Name}}){{end}}{{if not .Active}} — заблокирован{{end}}{{end}}{{end}}{{if not $n}}<span class="muted">никого</span>{{end}}</span></span></label>
|
||||
{{end}}
|
||||
</div>
|
||||
<div class="acc-form">
|
||||
<label>Логин<input type="text" name="login" placeholder="ivanov" required autocomplete="off" pattern="[^ /\@"'<>]+"></label>
|
||||
<label>Имя<input type="text" name="name" placeholder="Иванов Иван Иванович" autocomplete="off"></label>
|
||||
<label>E-mail<input type="email" name="email" placeholder="ivanov@example.ru" autocomplete="off"></label>
|
||||
<div class="acc-pw"><label style="flex:1">Пароль (от 8 символов)<input type="text" name="password" id="acc-pw" minlength="8" required autocomplete="off" spellcheck="false"></label>
|
||||
<button type="button" class="btn btn-secondary" id="acc-gen" style="white-space:nowrap">Придумать</button></div>
|
||||
</div>
|
||||
<p class="muted" style="font-size:12.5px;margin:8px 0 0">Пароль передайте сотруднику лично; сменить его можно в разделе Настройка → Пользователи.</p>
|
||||
<div style="margin-top:12px"><button type="submit" class="btn btn-ok">Создать учётную запись</button></div>
|
||||
</form>
|
||||
<script>(function(){
|
||||
var g=document.getElementById('acc-gen'), f=document.getElementById('acc-pw'); if(!g||!f||!window.crypto) return;
|
||||
g.addEventListener('click',function(){ var a='abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789', b=new Uint32Array(12), p='';
|
||||
crypto.getRandomValues(b); for(var i=0;i<b.length;i++){ p+=a[b[i]%a.length]; if(i===3||i===7) p+='-'; } f.value=p; f.select(); });
|
||||
})();</script>
|
||||
{{end}}
|
||||
{{template "wizNav" .}}
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
{{/* ============= ШАГ 10: Проверка готовности (в режиме разработки — ещё тестовая заявка) ============= */}}
|
||||
{{if eq .Step 10}}
|
||||
<div class="card">
|
||||
@@ -730,13 +781,6 @@
|
||||
})();
|
||||
</script>
|
||||
{{template "chainTest" .}}
|
||||
<div style="margin-top:18px;padding-top:18px;border-top:1px solid var(--border)">
|
||||
<h2>Письма для подключения</h2>
|
||||
<p class="muted" style="margin:0 0 6px">Готовые письма с вашими реквизитами — тем, без кого подключение не закончить.</p>
|
||||
{{template "letterCard" (letter "nsd-test")}}
|
||||
{{template "letterCard" (letter "nsd-prod")}}
|
||||
{{if .DepoLicensed}}{{template "letterCard" (letter "arqa")}}{{template "letterCard" (letter "dba")}}{{end}}
|
||||
</div>
|
||||
{{template "wizNav" .}}
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
Reference in New Issue
Block a user