No description
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> |
||
|---|---|---|
| .claude | ||
| .forgejo/workflows | ||
| arr-summary | ||
| nginx | ||
| static | ||
| templates | ||
| .env.example | ||
| .gitignore | ||
| app.py | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| export-to-unraid.sh | ||
| gunicorn.conf.py | ||
| manage_users.py | ||
| requirements.txt | ||
| UNRAID-SETUP.md | ||