No description
Find a file
Barely Removable 2f73367c6b Add a guarded way to retire the plaintext shared password
settings.json can still hold the old plaintext login_password after
accounts exist, where it's ignored but sitting in cleartext. Removing it
by hand has a sharp edge: with no accounts AND no login_password, the
login route reads "nothing configured" as dev mode and lets anyone in
without a password, so a tidy-up can quietly open the dashboard.

`manage_users.py retire-shared-password` removes the key only when at
least one account exists, and says so plainly when it won't. It also
warns if LOGIN_PASSWORD is still set in the environment, since that's a
second copy people forget.

Needed delete_setting() in app.py — save_settings() only ever merges, so
it had no way to take a key away.

Verified: refuses with exit 1 when no accounts exist and leaves the file
untouched; removes the key while preserving timezone and users; is
idempotent; warns about the env var; and after removal only the account
password signs in, with the retired shared password and the env value
both rejected.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 13:06:31 -07:00
.claude Make the listen port configurable via PORT 2026-08-27 07:51:07 -07:00
.forgejo/workflows Persist settings.json across deploys via a data volume 2026-08-26 09:34:46 -07:00
arr-summary Initial commit: Arr Summary source from server 2026-08-25 22:59:31 -07:00
nginx Initial commit: Arr Summary source from server 2026-08-25 22:59:31 -07:00
static Add per-user logins alongside the shared password 2026-08-27 13:03:21 -07:00
templates Add per-user logins alongside the shared password 2026-08-27 13:03:21 -07:00
.env.example Initial commit: Arr Summary source from server 2026-08-25 22:59:31 -07:00
.gitignore Add per-user logins alongside the shared password 2026-08-27 13:03:21 -07:00
app.py Add a guarded way to retire the plaintext shared password 2026-08-27 13:06:31 -07:00
CLAUDE.md Add per-user logins alongside the shared password 2026-08-27 13:03:21 -07:00
docker-compose.yml Persist settings.json across deploys via a data volume 2026-08-26 09:34:46 -07:00
Dockerfile Initial commit: Arr Summary source from server 2026-08-25 22:59:31 -07:00
export-to-unraid.sh Initial commit: Arr Summary source from server 2026-08-25 22:59:31 -07:00
gunicorn.conf.py Make the listen port configurable via PORT 2026-08-27 07:51:07 -07:00
manage_users.py Add a guarded way to retire the plaintext shared password 2026-08-27 13:06:31 -07:00
requirements.txt Initial commit: Arr Summary source from server 2026-08-25 22:59:31 -07:00
UNRAID-SETUP.md Initial commit: Arr Summary source from server 2026-08-25 22:59:31 -07:00