feat: account management (sub-project 6a) #5

Merged
eliott merged 1 commit from feat/account into main 2026-10-16 13:01:00 +02:00
Owner

Sub-project 6a: the Account tab becomes the web app's account page.

  • Profile (name, username, email), Security (password, two-factor with its On/Off state, a passkeys row pointing to the web), About (app version), Developer (debug screen, dev builds only), sign out and delete account.
  • Pushed screens: edit profile, change email (verification link to the new address), change password (other devices signed out), two-factor setup (secret as text with copy, otpauth link to the authenticator, code confirmation, backup codes) and disable, delete account (password + confirmation, then the device is emptied).
  • AuthService: one method per change returning the server's message on failure; the stored user carries username, 2FA state and admin flag and is refreshed from get-session when the hub opens.
  • New dependency expo-clipboard. Version 0.6.0 in package.json and app.json, kept equal by a test.

Verified on the emulator against the sync API: the hub shows the server's username and 2FA state, every screen renders, a wrong current password shows "Invalid password".

Sub-project 6a: the Account tab becomes the web app's account page. - Profile (name, username, email), Security (password, two-factor with its On/Off state, a passkeys row pointing to the web), About (app version), Developer (debug screen, dev builds only), sign out and delete account. - Pushed screens: edit profile, change email (verification link to the new address), change password (other devices signed out), two-factor setup (secret as text with copy, otpauth link to the authenticator, code confirmation, backup codes) and disable, delete account (password + confirmation, then the device is emptied). - AuthService: one method per change returning the server's message on failure; the stored user carries username, 2FA state and admin flag and is refreshed from get-session when the hub opens. - New dependency expo-clipboard. Version 0.6.0 in package.json and app.json, kept equal by a test. Verified on the emulator against the sync API: the hub shows the server's username and 2FA state, every screen renders, a wrong current password shows "Invalid password".
feat(account): profile, email, password, two-factor and account deletion (sub-project 6a)
All checks were successful
tests / test (pull_request) Successful in 1m28s
df7f4d4fca
The Account tab becomes the web app's account page: profile rows (name,
username, email), security (password, two-factor with its state, a passkeys
row pointing to the web), the app version, the debug screen in dev builds,
sign out and delete account. Each change is a pushed screen.

AuthService gains one method per change, each one Better-Auth call answering
the server's message on failure, and keeps the stored user (now with
username, 2FA state and admin flag) current; the hub refreshes it from
get-session on open. Two-factor setup shows the secret as text with a copy
button and an otpauth link for the authenticator app, then the backup codes.

Adds expo-clipboard. app.json and package.json versions are kept equal by a
test.
eliott merged commit c8236c6de2 into main 2026-10-16 13:01:00 +02:00
eliott deleted branch feat/account 2026-10-16 13:01:00 +02:00
Sign in to join this conversation.
No reviewers
No labels
run-ci
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
RollNote/rollnote-app!5
No description provided.