Skip to content

feat: add HIDE_PASSWORD_LOGIN ENV var & client setting to hide password fields on login#973

Open
v3DJG6GL wants to merge 15 commits intoDonutWare:developfrom
v3DJG6GL:feat/hide-password-login
Open

feat: add HIDE_PASSWORD_LOGIN ENV var & client setting to hide password fields on login#973
v3DJG6GL wants to merge 15 commits intoDonutWare:developfrom
v3DJG6GL:feat/hide-password-login

Conversation

@v3DJG6GL
Copy link
Copy Markdown
Contributor

Pull Request Description

Depends on #972 being merged

  • This PR adds a new HIDE_PASSWORD_LOGIN Container ENV var and a matching client-side setting to hide the username/password fields on the login screen, leaving only Jellyfin QuickConnect as the login path.
  • Interesting for people with deployments that rely on QuickConnect. Example: In my case both Jellyfin & Seerr logins are OIDC-based and therefore users have no dedicated Jellyfin/Seerr credentials - they can only authenticate through OIDC/SSO-Login flow or through QuickConnect.

Features

UI / UX

  • Conditionally hide the username/password input fields & the login button row when hidePasswordLogin is set.
  • New "Hide password login" toggle under Settings → Advanced.
  • Container Deployment only: The toggle at Settings → Advanced is disabled (read-only) when HIDE_PASSWORD_LOGIN has been enabled with ENV var.
  • When both BASE_URL and HIDE_PASSWORD_LOGIN are set, the URL, password and Login fields are all hidden. The back, refresh, and "advanced login options" buttons consolidate into a single centered row above the Quick Connect button.
    • The back button is only included when there are saved accounts to go back to.
    • The advanced login options button is dropped when a Seerr URL is already configured via ENV.
    • If only HIDE_PASSWORD_LOGIN is set (no BASE_URL), the existing URL-entry top row is preserved and the advanced login options button keeps its standalone centered row as before.

Container: New ENV

  • HIDE_PASSWORD_LOGIN: Set to "true" to hide password login fields and show only QuickConnect on the login screen.
    • Any other string than true disables this feature.
    • ENV is then added to config.json as hidePasswordLogin: true | null.

Refactor

  • Extracted the duplicated "advanced options" IconButton.filledTonal in login_screen_credentials.dart into a local advancedOptionsButton widget (the button was rendered in two conditional branches with identical callbacks).
  • Extracted the back and refresh buttons into backButton/refreshButton locals and consolidated them with advancedOptionsButton into a single centered row when the URL field is hidden — replaces the left-pinned top row and centered row with one clean strip.

Issue Being Fixed

N/A


Screenshots

  • Login Screen (with SEERR_URL & BASE_URL set & HIDE_PASSWORD_LOGIN set to true)

    image
  • Settings: Hide Password login toggle (disable since ENV HIDE_PASSWORD_LOGIN is set to true)

    image

Notes

AI Disclosure

Developed with assistance from Claude Code (Opus 4.7). The LLM helped me identify the related files, code parts and proposed possible code modifications and fixes.
I've manually reviewed, cleaned, refactored and hardened the code the best I could.

Tested On

  • Android
  • Android TV
  • iOS
  • Linux
  • Windows
  • macOS
  • Web

Checklist

  • If a new package was added, did you ensure it works for all supported platforms?
  • Check that any changes are related to the issue at hand.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant