feat: add UI to edit role default page permissions
Deploy Dashboard (Dev) / deploy-dev (push) Successful in 4m24s

This commit is contained in:
Gan, Jimmy
2026-03-01 17:57:45 +08:00
parent fce71cfea0
commit 862097813d
2 changed files with 77 additions and 5 deletions
+16
View File
@@ -403,3 +403,19 @@ async def rbac_delete_override(username: str, current_user = Depends(auth.get_cu
rbac.get("user_overrides", {}).pop(username, None)
save_rbac(rbac)
return {"ok": True}
@router.put("/rbac/roles/{role}")
async def rbac_update_role(role: str, request: Request, current_user = Depends(auth.get_current_user)):
if current_user.role != "admin":
raise HTTPException(status_code=403, detail="Admin only")
from rbac import load_rbac, save_rbac
body = await request.json()
pages = body.get("pages")
if pages is None:
raise HTTPException(status_code=400, detail="Missing pages field")
if pages != "*" and not isinstance(pages, list):
raise HTTPException(status_code=400, detail="pages must be '*' or a list")
rbac = load_rbac()
rbac.setdefault("role_defaults", {})[role] = {"pages": pages}
save_rbac(rbac)
return {"ok": True}