Database refactor to separate modules.

This commit is contained in:
Leo Vasanko
2026-01-23 18:35:35 +00:00
parent b6ee11b4de
commit 0674f9ceeb
19 changed files with 1653 additions and 1642 deletions
+3 -7
View File
@@ -356,7 +356,7 @@ async def admin_add_role_permission(
db.get_permission(permission_id)
org = db.get_organization(str(org_uuid))
if permission_id not in org.permissions:
raise ValueError(f"Permission not grantable by organization")
raise ValueError("Permission not grantable by organization")
db.add_permission_to_role(role_uuid, permission_id)
return {"status": "ok"}
@@ -593,14 +593,10 @@ async def admin_get_user_detail(
status_code=403, detail="Insufficient permissions", mode="forbidden"
)
user = db.get_user_by_uuid(user_uuid)
cred_ids = db.get_credentials_by_user_uuid(user_uuid)
user_creds = db.get_credentials_by_user_uuid(user_uuid)
creds: list[dict] = []
aaguids: set[str] = set()
for cid in cred_ids:
try:
c = db.get_credential_by_id(cid)
except ValueError: # pragma: no cover - race condition handling
continue
for c in user_creds:
aaguid_str = str(c.aaguid)
aaguids.add(aaguid_str)
creds.append(
+1 -1
View File
@@ -13,6 +13,7 @@ from fastapi import (
from fastapi.responses import JSONResponse
from fastapi.security import HTTPBearer
from paskia import db
from paskia.authsession import (
EXPIRES,
get_reset,
@@ -21,7 +22,6 @@ from paskia.authsession import (
)
from paskia.fastapi import authz, session, user
from paskia.fastapi.session import AUTH_COOKIE, AUTH_COOKIE_NAME
from paskia import db
from paskia.globals import passkey as global_passkey
from paskia.util import frontend, hostutil, htmlutil, passphrase, userinfo
from paskia.util.tokens import session_key
+1 -2
View File
@@ -15,11 +15,10 @@ from uuid import UUID
import base64url
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from paskia import remoteauth
from paskia import db, remoteauth
from paskia.authsession import create_session
from paskia.fastapi.session import infodict
from paskia.fastapi.wsutil import validate_origin, websocket_error_handler
from paskia import db
from paskia.globals import passkey
from paskia.util import passphrase, pow
+8 -8
View File
@@ -27,9 +27,9 @@ async def _resolve_targets(query: str | None):
targets: list[tuple] = []
try:
q_uuid = UUID(query)
perm_orgs = await _db.get_permission_organizations("auth:admin")
perm_orgs = _db.get_permission_organizations("auth:admin")
for o in perm_orgs:
users = await _db.get_organization_users(str(o.uuid))
users = _db.get_organization_users(str(o.uuid))
for u, role_name in users:
if u.uuid == q_uuid:
return [(u, role_name)]
@@ -38,9 +38,9 @@ async def _resolve_targets(query: str | None):
pass
# Substring search
needle = query.lower()
perm_orgs = await _db.get_permission_organizations("auth:admin")
perm_orgs = _db.get_permission_organizations("auth:admin")
for o in perm_orgs:
users = await _db.get_organization_users(str(o.uuid))
users = _db.get_organization_users(str(o.uuid))
for u, role_name in users:
if needle in (u.display_name or "").lower():
targets.append((u, role_name))
@@ -53,10 +53,10 @@ async def _resolve_targets(query: str | None):
deduped.append((u, role_name))
return deduped
# No query -> master admin
perm_orgs = await _db.get_permission_organizations("auth:admin")
perm_orgs = _db.get_permission_organizations("auth:admin")
if not perm_orgs:
return []
users = await _db.get_organization_users(str(perm_orgs[0].uuid))
users = _db.get_organization_users(str(perm_orgs[0].uuid))
admin_users = [pair for pair in users if pair[1] == "Administration"]
return admin_users[:1]
@@ -64,9 +64,9 @@ async def _resolve_targets(query: str | None):
async def _create_reset(user, role_name: str):
token = passphrase.generate()
expiry = _authsession.reset_expires()
await _db.create_reset_token(
user_uuid=user.uuid,
_db.create_reset_token(
key=_tokens.reset_key(token),
user_uuid=user.uuid,
expiry=expiry,
token_type="manual reset",
)
+1 -1
View File
@@ -10,6 +10,7 @@ from fastapi import (
)
from fastapi.responses import JSONResponse
from paskia import db
from paskia.authsession import (
delete_credential,
expires,
@@ -17,7 +18,6 @@ from paskia.authsession import (
)
from paskia.fastapi import authz, session
from paskia.fastapi.session import AUTH_COOKIE
from paskia import db
from paskia.util import hostutil, passphrase, tokens
from paskia.util.tokens import decode_session_key, session_key
+1 -1
View File
@@ -2,11 +2,11 @@ from uuid import UUID
from fastapi import FastAPI, WebSocket
from paskia import db
from paskia.authsession import create_session, get_reset, get_session
from paskia.fastapi import authz, remote
from paskia.fastapi.session import AUTH_COOKIE, infodict
from paskia.fastapi.wsutil import validate_origin, websocket_error_handler
from paskia import db
from paskia.globals import passkey
from paskia.util import passphrase
from paskia.util.tokens import create_token, session_key