diff --git a/cloud_backend/routers/manager_auth.py b/cloud_backend/routers/manager_auth.py index 435c77c..aad8fb0 100644 --- a/cloud_backend/routers/manager_auth.py +++ b/cloud_backend/routers/manager_auth.py @@ -59,7 +59,7 @@ def register_manager( _admin=Depends(get_current_admin), ): existing = db.query(ManagerAccount).filter(ManagerAccount.email == body.email).first() - sites = db.query(Site).filter(Site.id.in_(body.site_ids)).all() + sites = db.query(Site).filter(Site.site_id.in_(body.site_ids)).all() if existing: # Email already exists — just add the new site access links, don't recreate the account @@ -114,11 +114,11 @@ class ManagerBySiteOut(BaseModel): @router.get("/by-site/{site_id}", response_model=list[ManagerBySiteOut]) def get_managers_by_site( - site_id: int, + site_id: str, db: Session = Depends(get_db), _admin=Depends(get_current_admin), ): - site = db.query(Site).filter(Site.id == site_id).first() + site = db.query(Site).filter(Site.site_id == site_id).first() if not site: raise HTTPException(status_code=404, detail="Site not found") return site.manager_accounts @@ -128,7 +128,7 @@ def get_managers_by_site( class SiteAccessRemoveRequest(BaseModel): manager_id: int - site_id: int + site_id: str # site_id UUID string, not integer PK @router.delete("/site-access", status_code=status.HTTP_204_NO_CONTENT) @@ -141,7 +141,7 @@ def remove_manager_site_access( if not manager: raise HTTPException(status_code=404, detail="Manager not found") - site = db.query(Site).filter(Site.id == body.site_id).first() + site = db.query(Site).filter(Site.site_id == body.site_id).first() if not site: raise HTTPException(status_code=404, detail="Site not found") diff --git a/cloud_backend/schemas/manager.py b/cloud_backend/schemas/manager.py index 8946e1e..1b681cd 100644 --- a/cloud_backend/schemas/manager.py +++ b/cloud_backend/schemas/manager.py @@ -8,7 +8,7 @@ class ManagerRegisterRequest(BaseModel): email: str password: str full_name: Optional[str] = None - site_ids: list[int] = [] + site_ids: list[str] = [] # site_id UUID strings, not integer PKs class ManagerLoginRequest(BaseModel): diff --git a/sysadmin_panel/src/pages/SiteDetailPage.jsx b/sysadmin_panel/src/pages/SiteDetailPage.jsx index 15ca751..ede7166 100644 --- a/sysadmin_panel/src/pages/SiteDetailPage.jsx +++ b/sysadmin_panel/src/pages/SiteDetailPage.jsx @@ -75,7 +75,7 @@ export default function SiteDetailPage() { if (!newMgrEmail.trim() || !newMgrPass.trim()) return setAddingMgr(true) try { - await addManagerToSite(newMgrEmail.trim(), newMgrName.trim(), newMgrPass.trim(), Number(siteId)) + await addManagerToSite(newMgrEmail.trim(), newMgrName.trim(), newMgrPass.trim(), siteId) toast.success('Manager added') setModal(null) setNewMgrEmail(''); setNewMgrName(''); setNewMgrPass('') @@ -90,7 +90,7 @@ export default function SiteDetailPage() { async function doRemoveManager(managerId) { setRemovingMgrId(managerId) try { - await removeManagerSiteAccess(managerId, Number(siteId)) + await removeManagerSiteAccess(managerId, siteId) toast.success('Access removed') setManagers(prev => prev.filter(m => m.id !== managerId)) } catch (e) {