Translate the whole site to English: English routes with 301 redirects from the Dutch paths, English UI, docs, seeds and captions, one-time live content migration
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from molodetz.database import get_setting, update_user
|
||||
from molodetz.responses import action_result, respond
|
||||
from molodetz.schemas.account import PageOut
|
||||
from molodetz.seo import base_seo_context
|
||||
from molodetz.utils.audit import record
|
||||
from molodetz.utils.auth import invalidate_user_cache, require_user
|
||||
from molodetz.utils.request_meta import safe_next
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("")
|
||||
async def terms(request: Request):
|
||||
seo = base_seo_context(request, "Terms", breadcrumbs=[("Molodetz", "/"), ("Terms", "/terms")])
|
||||
ctx = {"title": "Terms", "terms_version": get_setting("terms_version", "1"), "next": safe_next(request.query_params.get("next"), "/"), "seo": seo}
|
||||
return respond(request, "terms.html", ctx, model=PageOut)
|
||||
|
||||
|
||||
@router.post("/accept")
|
||||
async def accept_terms(request: Request):
|
||||
user = require_user(request)
|
||||
version = get_setting("terms_version", "1")
|
||||
update_user(user["uid"], terms_version=version)
|
||||
invalidate_user_cache(propagate=True)
|
||||
record(request, "auth.terms.accept", payload={"version": version}, user=user)
|
||||
form = await request.form() if not request.headers.get("content-type", "").startswith("application/json") else {}
|
||||
return action_result(request, safe_next(form.get("next") if form else None, "/"))
|
||||
Reference in New Issue
Block a user