41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
"""Home routes."""
|
|
|
|
from fastapi import APIRouter, Depends, Request
|
|
|
|
from keycloak_collective_portal.dependencies import (
|
|
get_invites,
|
|
get_user,
|
|
logged_in,
|
|
)
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/", dependencies=[Depends(logged_in)])
|
|
async def home(
|
|
request: Request, user=Depends(get_user), invites=Depends(get_invites)
|
|
):
|
|
from keycloak_collective_portal.config import (
|
|
FEATURE_FLAG_ADMINS_ONLY,
|
|
KEYCLOAK_ADMINS_GROUP,
|
|
KEYCLOAK_GROUPS_KEY,
|
|
)
|
|
|
|
context = {"request": request, "user": user, "invites": invites}
|
|
|
|
if FEATURE_FLAG_ADMINS_ONLY:
|
|
context["message"] = "only admins can access this service"
|
|
if KEYCLOAK_GROUPS_KEY not in user:
|
|
return request.app.state.templates.TemplateResponse(
|
|
"invalid.html", context=context
|
|
)
|
|
|
|
if KEYCLOAK_ADMINS_GROUP not in user[KEYCLOAK_GROUPS_KEY]:
|
|
return request.app.state.templates.TemplateResponse(
|
|
"invalid.html", context=context
|
|
)
|
|
|
|
return request.app.state.templates.TemplateResponse(
|
|
"admin.html", context=context
|
|
)
|