feat: add UI to edit role default page permissions
Deploy Dashboard (Dev) / deploy-dev (push) Successful in 4m24s
Deploy Dashboard (Dev) / deploy-dev (push) Successful in 4m24s
This commit is contained in:
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user