SurfSense/surfsense_backend/app/utils/check_ownership.py

20 lines
601 B
Python
Raw Normal View History

2025-03-14 18:53:14 -07:00
from fastapi import HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.future import select
2025-03-14 18:53:14 -07:00
from app.db import User
2025-03-14 18:53:14 -07:00
# Helper function to check user ownership
async def check_ownership(session: AsyncSession, model, item_id: int, user: User):
item = await session.execute(
select(model).filter(model.id == item_id, model.user_id == user.id)
)
2025-03-14 18:53:14 -07:00
item = item.scalars().first()
if not item:
raise HTTPException(
status_code=404,
detail="Item not found or you don't have permission to access it",
)
return item