fix auth: validate logout body, harden WebAuthn, optimize list_users

- Raise ValueError on missing request body in auth_logout
- Add username check in verify_authentication to prevent credential reuse
- Replace N+1 queries in list_users with single JOIN query
This commit is contained in:
2026-08-12 03:58:54 +00:00
parent ba0c7bfa9b
commit 6f728cf853
5 changed files with 24 additions and 13 deletions
+6
View File
@@ -27,6 +27,7 @@ from lib.db import (
Q_SELECT_USER_BY_ID,
Q_SELECT_USER_BY_NAME,
Q_SELECT_USER_JWT_SECRET,
Q_SELECT_USERS_WITH_PERMS,
Q_SELECT_WEBAUTHN_COUNTS,
Q_SELECT_WEBAUTHN_ID,
Q_SELECT_WEBAUTHN_USER,
@@ -70,6 +71,11 @@ class SQLiteBackend(Database):
Q_SELECT_ALL_USERS: (
"SELECT id, username, created_at FROM users ORDER BY username"
),
Q_SELECT_USERS_WITH_PERMS: (
"SELECT u.id, u.username, u.created_at, p.subsystem, p.level "
"FROM users u LEFT JOIN permissions p ON u.username = p.username "
"ORDER BY u.username"
),
Q_SELECT_USER_JWT_SECRET: ("SELECT jwt_secret FROM users WHERE username = ?"),
Q_UPDATE_JWT_SECRET: ("UPDATE users SET jwt_secret = ? WHERE username = ?"),
# Permissions