aboutsummaryrefslogtreecommitdiffstats
path: root/management
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tom@vanderlee.io>2026-09-04 17:09:24 +0200
committerGravatar Tom van der Lee <tom@vanderlee.io>2026-09-04 17:09:24 +0200
commit6b6f20a032eb31d747366c8bc270ca81731eaf6a (patch)
treeada48080495267bebde4ee1251bbbe77d629745f /management
parent2d22158dd95f76399f5716d556be60c77da04a46 (diff)
downloadserver-6b6f20a032eb31d747366c8bc270ca81731eaf6a.tar.gz
server-6b6f20a032eb31d747366c8bc270ca81731eaf6a.tar.bz2
server-6b6f20a032eb31d747366c8bc270ca81731eaf6a.zip
Fixed pre-commit issuesv3
Diffstat (limited to 'management')
-rw-r--r--management/endpoints.py33
1 files changed, 17 insertions, 16 deletions
diff --git a/management/endpoints.py b/management/endpoints.py
index ef44114..2dc77d4 100644
--- a/management/endpoints.py
+++ b/management/endpoints.py
@@ -18,10 +18,7 @@ management = FastAPI()
18management.add_middleware(AuthenticationMiddleware, backend=SessionAuthBackend()) 18management.add_middleware(AuthenticationMiddleware, backend=SessionAuthBackend())
19management.add_middleware(SessionMiddleware, secret_key=conf.SECRET_KEY) 19management.add_middleware(SessionMiddleware, secret_key=conf.SECRET_KEY)
20 20
21templates = Jinja2Templates(directory=[ 21templates = Jinja2Templates(directory=["templates", "management/templates"])
22 'templates',
23 'management/templates'
24])
25 22
26 23
27def requires_session(func): 24def requires_session(func):
@@ -29,38 +26,42 @@ def requires_session(func):
29 which resolves the redirect target via `request.url_for()` against whichever router is 26 which resolves the redirect target via `request.url_for()` against whichever router is
30 bound into `request.scope` -- a lookup that only reaches `authentication`'s routes when 27 bound into `request.scope` -- a lookup that only reaches `authentication`'s routes when
31 `management` happens to be mounted under a shared root app.""" 28 `management` happens to be mounted under a shared root app."""
29
32 @wraps(func) 30 @wraps(func)
33 async def wrapper(request: Request, *args, **kwargs): 31 async def wrapper(request: Request, *args, **kwargs):
34 if not {'authenticated', 'session'}.issubset(request.auth.scopes): 32 if not {"authenticated", "session"}.issubset(request.auth.scopes):
35 next_param = urlencode({'next': str(request.url)}) 33 next_param = urlencode({"next": str(request.url)})
36 return RedirectResponse(f'/auth/login/?{next_param}', status_code=303) 34 return RedirectResponse(f"/auth/login/?{next_param}", status_code=303)
37 return await func(request, *args, **kwargs) 35 return await func(request, *args, **kwargs)
36
38 return wrapper 37 return wrapper
39 38
40@management.get('/') 39
40@management.get("/")
41async def index(request: Request): 41async def index(request: Request):
42 with get_session_context() as session: 42 with get_session_context() as session:
43 query = select(func.count(User.id)) 43 query = select(func.count(User.id))
44 user_count = session.exec(query) 44 user_count = session.exec(query)
45 45
46 if user_count.first() == 0: 46 if user_count.first() == 0:
47 return RedirectResponse('/auth/register/?next=/management/dashboard/', status_code=303) 47 return RedirectResponse(
48 "/auth/register/?next=/management/dashboard/", status_code=303
49 )
48 50
49 return RedirectResponse('/management/dashboard/', status_code=303) 51 return RedirectResponse("/management/dashboard/", status_code=303)
50 52
51 53
52@management.get('/dashboard/') 54@management.get("/dashboard/")
53@requires_session 55@requires_session
54async def dashboard(request: Request): 56async def dashboard(request: Request):
55 return templates.TemplateResponse(request, 'dashboard.html') 57 return templates.TemplateResponse(request, "dashboard.html")
58
56 59
57@management.get('/users/') 60@management.get("/users/")
58@requires_session 61@requires_session
59async def users(request: Request): 62async def users(request: Request):
60 with get_session_context() as session: 63 with get_session_context() as session:
61 query = select(User) 64 query = select(User)
62 users = session.exec(query).all() 65 users = session.exec(query).all()
63 66
64 return templates.TemplateResponse(request, 'users.html', context={ 67 return templates.TemplateResponse(request, "users.html", context={"users": users})
65 'users': users
66 })