feat(auth): enable password login on OAuth-only accounts, with disable control

Admins can now reset the password of an OAuth-only user, which creates
their credentials and enables password login; the new 'Disable password
login' row action removes those credentials again. Resetting a password
revokes all existing sessions.

- add users.password_login_enabled column (migration 0005)
- admin reset: set password, enable login, revoke sessions
- disable action: clear password, disable login (only on OAuth-linked rows)
- account endpoint: refuse password updates on OAuth-linked users
- e2e: wipe the test DB before the webServer starts (Playwright starts
  the server before globalSetup, so wiping there orphaned the DB file)
- row-actions strip test: five square actions, wrap on phone widths
This commit is contained in:
Frederic Cabassut
2026-08-19 13:18:56 +02:00
committed by Fred Cabassut
parent e315b8c7ec
commit e4606cfc70
21 changed files with 1756 additions and 205 deletions
+2
View File
@@ -0,0 +1,2 @@
ALTER TABLE `users` ADD `password_login_enabled` integer DEFAULT false NOT NULL;--> statement-breakpoint
UPDATE `users` SET `password_login_enabled` = 1 WHERE `auth_provider` = 'password';
File diff suppressed because it is too large Load Diff
+7
View File
@@ -36,6 +36,13 @@
"when": 1785824271578,
"tag": "0004_violet_nicolaos",
"breakpoints": true
},
{
"idx": 5,
"version": "6",
"when": 1787064677945,
"tag": "0005_green_raider",
"breakpoints": true
}
]
}