Adding ACL Modificationf for existing roles

This commit is contained in:
Ian Roddis committed 2026-06-24 22:01:25 -03:00
1 parent 35e8a61b1d
commit 78efe32b69
4 files changed
+93 -14

No files matched your search

+49 -1
View File
@@ -197,10 +197,58 @@ async def create_role(
return templates.TemplateResponse(
request,
"admin/_roles_table.html",
{"roles": await role_crud.list_roles(db)},
{
"roles": await role_crud.list_roles(db),
"permissions": await role_crud.list_permissions(db),
},
)
@router.get("/roles/{role_id}/edit", response_class=HTMLResponse)
async def edit_role_row(
request: Request,
role_id: int,
db: AsyncSession = Depends(get_db),
_: User = Depends(web_require("roles:write")),
):
role = await role_crud.get(db, role_id)
if role is None:
raise HTTPException(status_code=404, detail="Role not found")
return templates.TemplateResponse(
request,
"admin/_role_row_edit.html",
{"r": role, "permissions": await role_crud.list_permissions(db)},
)
@router.get("/roles/{role_id}/row", response_class=HTMLResponse)
async def role_row(
request: Request,
role_id: int,
db: AsyncSession = Depends(get_db),
_: User = Depends(web_require("roles:read")),
):
role = await role_crud.get(db, role_id)
if role is None:
raise HTTPException(status_code=404, detail="Role not found")
return templates.TemplateResponse(request, "admin/_role_row.html", {"r": role})
@router.post("/roles/{role_id}", response_class=HTMLResponse)
async def update_role(
request: Request,
role_id: int,
permission_ids: list[int] = Form(default=[]),
db: AsyncSession = Depends(get_db),
_: User = Depends(web_require("roles:write")),
):
role = await role_crud.get(db, role_id)
if role is None:
raise HTTPException(status_code=404, detail="Role not found")
await role_crud.update(db, role, {"permission_ids": permission_ids})
return templates.TemplateResponse(request, "admin/_role_row.html", {"r": role})
@router.delete("/roles/{role_id}")
async def delete_role(
role_id: int,