Add user PIN protection (#719)

## Description
Adds (back) the ability to set a per-user PIN. This is required to
switch to the user. If the user has a PIN, this overrides and ignores
the "Sign in automatically" setting for that user.

The PIN consists of any combination of D-Pad directional buttons. If you
forget the PIN, you can click the button to login via the server instead
(ie QuickConnect or username/password) which will also remove the PIN so
you can set a new one if desired.

### Related issues
Closes #268 
Replaces #398
Related to #321 & #356

### Screenshots
![enter_pin
Large](https://github.com/user-attachments/assets/aa25364d-1266-410d-846e-8dc32c56a794)
This commit is contained in:
Ray 2026-01-19 11:39:29 -05:00 committed by GitHub
parent 946043342a
commit 0f52616d21
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 20 additions and 21 deletions

View file

@ -118,13 +118,11 @@ fun SwitchUserContent(
users = users,
currentUser = currentUser,
onSwitchUser = { user ->
// TODO PIN-related
// if (user.pin.isNotNullOrBlank()) {
// switchUserWithPin = user
// } else {
// viewModel.switchUser(user)
// }
viewModel.switchUser(user)
if (user.hasPin) {
switchUserWithPin = user
} else {
viewModel.switchUser(user)
}
},
onAddUser = { showAddUser = true },
onRemoveUser = { user ->