Папки шлюза: пароль генерируется и показывается сразу при загрузке (когда папки ещё не открыты)

Раньше поле пароля было пустым с подсказкой «пусто — прежний», и оператору
приходилось нажимать «Сгенерировать». Теперь при открытии страницы, если папки
шлюза ещё не открыты по сети, bj сразу подставляет в поле новый надёжный пароль
(genPw, 16 символов, crypto.getRandomValues) и показывает его. Оператор может
оставить его или вписать свой. Если папки уже открыты — поле остаётся пустым
(пустое = оставить прежний пароль при повторном сохранении).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-21 11:47:35 +03:00
parent 365ec1196d
commit 5757e1e46a
2 changed files with 17 additions and 16 deletions
+12 -12
View File
@@ -1,27 +1,27 @@
{
"bj-component-install": {
"fingerprint": "61cfd9db5bd1d70d74f6fde0f6c37d18747c8310197a9942abc7139dc3b86687",
"version": "2026.10.21.1"
"fingerprint": "c3a389928dd5c099e7fa4a15f5bdd3de43f3eec500b42517431f914646fd9c9e",
"version": "2026.10.21.2"
},
"bj-installer": {
"fingerprint": "8598d4f35fc05d882596e8e4a599f44443cbfa3b0f6ea5c4de4ecbfadd5dab01",
"version": "2026.10.21.1"
"fingerprint": "1f4e11a07b96994ddb328db07df13e20c3c2df1d966c949adc53cceac01aa52e",
"version": "2026.10.21.2"
},
"bj-lk": {
"fingerprint": "48a6cac59febba3392c854423b729f426383d86d35514578b5546786c8ab3355",
"version": "2026.10.13.1"
"fingerprint": "37bf4ba7d13bc3cfb52032dfb95851b9d5d702f1a2244e185a1b6a5b87a5cfc6",
"version": "2026.10.21.2"
},
"bj-npr": {
"fingerprint": "357f7562645da12ec4689927f5599a2aa22996a34bd82b36f80ece26629ac036",
"version": "2026.10.13.1"
"fingerprint": "5b5301b0c18bfd001bdff3f3b35a9ff6ccccb4f24eb4b88b0334d34d1b63df81",
"version": "2026.10.21.2"
},
"bj-quikexport": {
"fingerprint": "136cb4068888239e792d4eaedb973f430ce01542d124066fc914847a147c3549",
"version": "2026.10.13.1"
"fingerprint": "f7761571352f17173c10989f72a3a9686e58cfc0c0a78ae7299bacbe31d36df6",
"version": "2026.10.21.2"
},
"bj-server": {
"fingerprint": "c0acd146bee349ef49b6743700430b8a3ecd6868037bad5e3d2a3ea9b5d4ca04",
"version": "2026.10.21.1"
"fingerprint": "4d5c02313064289f1fefb94d2f51c0a89da56fc2921ad0c46848783a92171ce2",
"version": "2026.10.21.2"
},
"crypto-service.jar": {
"fingerprint": "2c4fd536bc9b1c20c69a70e8dcd374a61847b263aeb2e474c45debb01fbd8233",
@@ -211,16 +211,17 @@
stl.querySelectorAll('[data-copy]').forEach(function(b){ b.onclick=function(){ (window.bjCopy||function(t){navigator.clipboard&&navigator.clipboard.writeText(t)})(b.dataset.copy); b.textContent='Скопировано ✓'; setTimeout(function(){b.textContent='Скопировать'},1500); }; });
} else stl.innerHTML='<span class="muted">Сейчас закрыты. Выберите, как входить, отметьте «Открыть папки шлюза по сети» и сохраните — здесь появится адрес для проводника.</span>';
f.enabled.checked=!!d.on; if(d.mode!=='domain' && d.user) f.user.value=d.user;
if(!d.on && !f.password.value){ f.password.type='text'; f.password.value=genPw();
var pn=document.getElementById('ig-sh-pwnote'); if(pn) pn.textContent='Пароль создан автоматически — запишите его (или впишите свой). Его вводят в Windows при первом открытии папок; позже bj его не покажет.'; }
sync();
}
function load(){ return fetch('/admin/setup/igate/share',{cache:'no-store'}).then(function(r){return r.json()}).then(show).catch(function(){ stl.textContent='Состояние не получено.'; }); }
f.addEventListener('change',function(e){ if(e.target.name==='mode') sync(); });
function genPw(){ var cs='ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789', a=new Uint32Array(16), s=''; crypto.getRandomValues(a); for(var i=0;i<16;i++) s+=cs[a[i]%cs.length]; return s; }
var genbtn=document.getElementById('ig-sh-gen');
if(genbtn) genbtn.addEventListener('click',function(){
var cs='ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789', a=new Uint32Array(16), s='';
crypto.getRandomValues(a); for(var i=0;i<16;i++) s+=cs[a[i]%cs.length];
f.password.type='text'; f.password.value=s; f.password.focus(); f.password.select();
o.innerHTML='<span class="muted">Пароль создан — запишите его перед сохранением.</span>';
f.password.type='text'; f.password.value=genPw(); f.password.focus(); f.password.select();
o.innerHTML='<span class="muted">Новый пароль создан — запишите его перед сохранением.</span>';
});
f.addEventListener('submit',function(e){ e.preventDefault();
var p=new URLSearchParams(), url='/admin/setup/igate/share', d=mode()==='domain';