Publish curated Unraid-AppOps-Gateway source from 034c9f844d2455850ba37b31379b7edaa786583e
This commit is contained in:
1 parent
c61fbfd87f
commit
1a54836efc
101 files changed
+4973
-1298
No files matched your search
@@ -0,0 +1,23 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException, Request
|
||||
from sqlmodel import Session
|
||||
|
||||
from ..db.session import get_session
|
||||
from ..schemas.exposure_preferences import ExposurePreferences, ExposurePreferencesUpdate
|
||||
from ..services.exposure_preferences import get_exposure_preferences, update_exposure_preferences
|
||||
from ..services.user_access import authorize_request
|
||||
|
||||
router = APIRouter(prefix="/api/settings/exposure")
|
||||
|
||||
|
||||
@router.get("", response_model=ExposurePreferences)
|
||||
def get_preferences(request: Request, session: Session = Depends(get_session)):
|
||||
authorize_request(request)
|
||||
return get_exposure_preferences(session)
|
||||
|
||||
|
||||
@router.patch("", response_model=ExposurePreferences)
|
||||
def patch_preferences(payload: ExposurePreferencesUpdate, request: Request, session: Session = Depends(get_session)):
|
||||
user = authorize_request(request)
|
||||
if user.role != "admin":
|
||||
raise HTTPException(403, "Only administrators may change exposure preferences")
|
||||
return update_exposure_preferences(session, payload, identity=f"{user.provider}:{user.subject}")
|
||||
Reference in new issue
Block a user