Adding ACL Modificationf for existing roles
This commit is contained in:
1 parent
35e8a61b1d
commit
78efe32b69
4 files changed
+93
-14
No files matched your search
+49
-1
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user