accounts: Add list view

This commit is contained in:
2026-02-14 09:24:11 +01:00
parent 006961ece8
commit f8c2727226
4 changed files with 73 additions and 3 deletions

View File

@@ -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},
)