profile id support in api requests

This commit is contained in:
Mateusz Gruszczyński
2026-06-16 19:46:16 +02:00
parent c796a740d1
commit a73aeb5544
18 changed files with 1823 additions and 185 deletions
+5 -5
View File
@@ -4,8 +4,8 @@ from ._shared import *
from ..services import auth
def _active_profile_id() -> int | None:
profile = preferences.active_profile()
def _active_profile_id(require_write: bool = False) -> int | None:
profile = request_profile(require_write=require_write)
return int(profile["id"]) if profile else None
@@ -27,7 +27,7 @@ def backup_list():
@bp.post("/backup/profile")
def backup_create_profile():
data = request.get_json(silent=True) or {}
pid = _active_profile_id()
pid = _active_profile_id(require_write=True)
if not pid:
return jsonify({"ok": False, "error": "No profile"}), 400
try:
@@ -84,7 +84,7 @@ def profile_backup_settings_get():
@bp.post("/backup/profile/settings")
def profile_backup_settings_save():
data = request.get_json(silent=True) or {}
pid = _active_profile_id()
pid = _active_profile_id(require_write=True)
if not pid:
return jsonify({"ok": False, "error": "No profile"}), 400
try:
@@ -104,7 +104,7 @@ def backup_preview(backup_id: int):
@bp.post("/backup/<int:backup_id>/restore")
def backup_restore(backup_id: int):
try:
pid = _active_profile_id()
pid = _active_profile_id(require_write=True)
return ok({"result": backup_service.restore_backup(backup_id, default_user_id(), profile_id=pid)})
except Exception as exc:
return jsonify({"ok": False, "error": str(exc)}), 403 if isinstance(exc, PermissionError) else 400