fix: toggle viewer_port directly instead of viewer.enabled — no ambiguity
This commit is contained in:
parent
c85bba8d56
commit
deb2380507
2 changed files with 8 additions and 6 deletions
11
main.go
11
main.go
|
|
@ -89,14 +89,15 @@ func main() {
|
||||||
liveCfg := *app.server.appConfig // copy, not pointer
|
liveCfg := *app.server.appConfig // copy, not pointer
|
||||||
app.server.mu.RUnlock()
|
app.server.mu.RUnlock()
|
||||||
|
|
||||||
// Handle viewer server toggle.
|
// Handle viewer server toggle via viewer_port.
|
||||||
if liveCfg.Auth.Viewer.Enabled && app.viewerSrv == nil {
|
viewerOn := liveCfg.Server.ViewerPort != "" && liveCfg.Server.ViewerPort != ":0"
|
||||||
|
if viewerOn && app.viewerSrv == nil {
|
||||||
go func() {
|
go func() {
|
||||||
v, err := app.server.StartViewerServer()
|
v, err := app.server.StartViewerServer()
|
||||||
if err != nil { log.Printf("Viewer server: %v", err) }
|
if err != nil { log.Printf("Viewer server: %v", err) }
|
||||||
app.viewerSrv = v
|
app.viewerSrv = v
|
||||||
}()
|
}()
|
||||||
} else if !liveCfg.Auth.Viewer.Enabled && app.viewerSrv != nil {
|
} else if !viewerOn && app.viewerSrv != nil {
|
||||||
log.Println("Stopping viewer server...")
|
log.Println("Stopping viewer server...")
|
||||||
app.viewerSrv.Close()
|
app.viewerSrv.Close()
|
||||||
app.viewerSrv = nil
|
app.viewerSrv = nil
|
||||||
|
|
@ -119,7 +120,7 @@ func main() {
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// Start viewer server only if enabled.
|
// Start viewer server only if enabled.
|
||||||
if cfg.Auth.Viewer.Enabled {
|
if cfg.Server.ViewerPort != "" && cfg.Server.ViewerPort != ":0" {
|
||||||
go func() {
|
go func() {
|
||||||
v, err := app.server.StartViewerServer()
|
v, err := app.server.StartViewerServer()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -128,7 +129,7 @@ func main() {
|
||||||
app.viewerSrv = v
|
app.viewerSrv = v
|
||||||
}()
|
}()
|
||||||
} else {
|
} else {
|
||||||
log.Println("Viewer server: disabled in config")
|
log.Println("Viewer server: disabled (viewer_port empty)")
|
||||||
}
|
}
|
||||||
|
|
||||||
select {
|
select {
|
||||||
|
|
|
||||||
|
|
@ -277,7 +277,7 @@ async function renderCameraCards() {
|
||||||
<label>Username <input type="text" value="${escAttr(config?.auth?.viewer?.username || '')}" data-auth="viewer-user"></label>
|
<label>Username <input type="text" value="${escAttr(config?.auth?.viewer?.username || '')}" data-auth="viewer-user"></label>
|
||||||
<label>Password <input type="password" placeholder="new password" data-auth="viewer-pass"></label>
|
<label>Password <input type="password" placeholder="new password" data-auth="viewer-pass"></label>
|
||||||
<div class="row" style="margin-top:8px">
|
<div class="row" style="margin-top:8px">
|
||||||
<label>Enable local view access <input type="checkbox" id="viewer-enable" ${config?.auth?.viewer?.enabled ? 'checked' : ''} style="width:auto"></label>
|
<label>Enable local view access <input type="checkbox" id="viewer-enable" ${config?.server?.viewer_port ? 'checked' : ''} style="width:auto"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -432,6 +432,7 @@ document.getElementById('btn-save').addEventListener('click', async () => {
|
||||||
cfg.auth.master.username = masterUser;
|
cfg.auth.master.username = masterUser;
|
||||||
cfg.auth.viewer.username = viewerUser;
|
cfg.auth.viewer.username = viewerUser;
|
||||||
cfg.auth.viewer.enabled = viewerEnabled || false;
|
cfg.auth.viewer.enabled = viewerEnabled || false;
|
||||||
|
cfg.server.viewer_port = viewerEnabled ? ":8090" : "";
|
||||||
if (masterPass) { cfg.auth.master.password = masterPass; cfg.auth.master.enabled = true; }
|
if (masterPass) { cfg.auth.master.password = masterPass; cfg.auth.master.enabled = true; }
|
||||||
if (viewerPass) { cfg.auth.viewer.password = viewerPass; }
|
if (viewerPass) { cfg.auth.viewer.password = viewerPass; }
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue