feat: add encrypted sync user management

Adds full CRUD for sync users (create/list/detail/edit) behind admin
auth and CSRF protection. Passwords are encrypted at rest and never
decrypted into a template context; only emails may be decrypted for
display on the edit form. Blank password fields on edit preserve the
existing encrypted password.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Bastian Wagner
2026-08-15 09:41:21 +02:00
parent da6b94ca2f
commit b39842fe2c
7 changed files with 484 additions and 3 deletions

11
app/web/forms.py Normal file
View File

@@ -0,0 +1,11 @@
from dataclasses import dataclass
@dataclass(frozen=True)
class UserFormData:
name: str
mywhoosh_email: str
mywhoosh_password: str
garmin_email: str
garmin_password: str
enabled: bool