Канал ИШ: необязательные параметры — 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:
@@ -1209,9 +1209,25 @@ func (v UsersView) RoleNote(k string) string {
|
||||
}
|
||||
|
||||
func (h *setupHandlers) usersFlash(w http.ResponseWriter, r *http.Request, msg string) {
|
||||
if safeReturnPath(r.FormValue("return_to")) != "" { // форма из мастера (шаг «Учётные записи») — туда же
|
||||
setupFlash(w, r, msg)
|
||||
return
|
||||
}
|
||||
http.Redirect(w, r, "/admin/setup?flash="+url.QueryEscape(msg)+"#users", http.StatusSeeOther)
|
||||
}
|
||||
|
||||
// doneUsers — кроме администратора заведена хотя бы одна действующая учётная запись: у каждого сотрудника свой
|
||||
// вход, и в журнале видно, кто что сделал.
|
||||
func doneUsers() bool {
|
||||
n := 0
|
||||
for _, u := range globalUsers.List() {
|
||||
if u.Active {
|
||||
n++
|
||||
}
|
||||
}
|
||||
return n > 1
|
||||
}
|
||||
|
||||
func (h *setupHandlers) saveUser(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != http.MethodPost {
|
||||
http.Error(w, "method", http.StatusMethodNotAllowed)
|
||||
@@ -1230,6 +1246,10 @@ func (h *setupHandlers) saveUser(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
u := globalUsers.Get(login)
|
||||
isNew := u == nil
|
||||
if !isNew && r.FormValue("create") != "" { // форма «создать» не должна молча менять существующую запись
|
||||
h.usersFlash(w, r, "Пользователи: логин «"+login+"» уже занят — выберите другой.")
|
||||
return
|
||||
}
|
||||
if isNew {
|
||||
u = &User{Login: login, Source: "local", Active: true, CreatedAt: time.Now()}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user