v0.321.0: FileBrowser's stale password and its own banners; one backup section on the Data tab; install address of an installed app
gates / gates (push) Successful in 43s

R-1101: the change-it line is gone for FileBrowser; in the generated state the page asks FileBrowser whether
the stored password still logs in (only its own 401/403 counts) and, refused, says so and offers the
new-password press. The rendered FileBrowser config switches off its update notice and its Install-app
prompt. The Data tab's backup part is one section in plain words (no off-drive, no PBS); the export
password eye is a text button. R-1095: /apps/{slug}/install of an installed app 302s to its settings tab.

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-10-16 17:17:26 +02:00
parent c02c9d833a
commit 7e791d9b5d
30 changed files with 1262 additions and 363 deletions
+15
View File
@@ -882,6 +882,12 @@ func (s *Server) appCommonData(w http.ResponseWriter, r *http.Request, slug stri
data["InitialCreds"] = &stacks.ExtractedCreds{Available: true, Username: "admin",
Note: s.msg(r, "creds.filebrowser_note")}
data["InitialCredsHasPassword"] = enc != ""
// v0.321.0 (R-1101): the stored value is checked against FileBrowser before it is offered. Refused →
// the household changed it there: a sentence and the new-password press instead of the eye.
if enc != "" && s.fbStoredPasswordRefused() {
data["InitialCredsStale"] = true
data["InitialCredsHasPassword"] = false
}
case settings.FileBrowserAdminOperator:
data["HasAppInfo"] = true
data["InitialCreds"] = &stacks.ExtractedCreds{Available: true, Username: "admin"}
@@ -2721,6 +2727,15 @@ func (s *Server) appInitialCredsRevealHandler(w http.ResponseWriter, r *http.Req
escrowJSON(w, http.StatusOK, map[string]any{"password": creds.Password}, "")
}
// fbStoredPasswordRefused asks the stack manager whether FileBrowser refuses the stored password (R-1101); the test
// seam Server.fbStoredRefused replaces it.
func (s *Server) fbStoredPasswordRefused() bool {
if s.fbStoredRefused != nil {
return s.fbStoredRefused()
}
return s.stackMgr != nil && s.stackMgr.FileBrowserStoredPasswordRefused()
}
// appFileBrowserResetHandler — POST /apps/filebrowser/initial-credentials/reset (v0.320.0). The household's
// „Új jelszó beállítása" in the `operator` state: the box does not know the file manager's password, so it sets a
// new one (stacks.ResetFileBrowserAdminPassword — stop, the file browser's own CLI, start, verify, record).