accounts: Add list view
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
from decimal import Decimal
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, File, Form, HTTPException, Request
|
||||
@@ -8,7 +7,14 @@ from starlette.responses import RedirectResponse
|
||||
|
||||
from allmende_payment_system import types
|
||||
from allmende_payment_system.api.dependencies import SessionDep, UserDep
|
||||
from allmende_payment_system.models import Area, Permission, Product, User, UserGroup
|
||||
from allmende_payment_system.models import (
|
||||
Account,
|
||||
Area,
|
||||
Permission,
|
||||
Product,
|
||||
User,
|
||||
UserGroup,
|
||||
)
|
||||
from allmende_payment_system.tools import get_jinja_renderer
|
||||
|
||||
admin_router = APIRouter(prefix="/admin")
|
||||
@@ -276,3 +282,22 @@ async def new_product_post(
|
||||
return RedirectResponse(
|
||||
url="/admin/products", status_code=status.HTTP_303_SEE_OTHER
|
||||
)
|
||||
|
||||
|
||||
@admin_router.get("/accounts")
|
||||
async def get_accounts(
|
||||
request: Request,
|
||||
session: SessionDep,
|
||||
user: UserDep,
|
||||
):
|
||||
if not user.has_permission("account", "edit"):
|
||||
raise HTTPException(status_code=403, detail="Insufficient permissions")
|
||||
|
||||
templates = get_jinja_renderer()
|
||||
|
||||
accounts = session.scalars(select(Account)).all()
|
||||
|
||||
return templates.TemplateResponse(
|
||||
"accounts.html.jinja",
|
||||
context={"request": request, "accounts": accounts},
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user