Molodetz blogrol volgens DPP-template
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
from fastapi import APIRouter, Request
|
||||
|
||||
from molodetz.database import generate_uid, update_user
|
||||
from molodetz.responses import action_result, respond
|
||||
from molodetz.schemas.account import ApiKeyOut
|
||||
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.notifications import create_notification
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/api-key")
|
||||
async def api_key_page(request: Request):
|
||||
user = require_user(request)
|
||||
seo = base_seo_context(request, "API-sleutel", robots="noindex,nofollow")
|
||||
return respond(request, "profile/api_key.html", {"api_key": user["api_key"], "seo": seo}, model=ApiKeyOut)
|
||||
|
||||
|
||||
@router.post("/api-key/regenerate")
|
||||
async def api_key_regenerate(request: Request):
|
||||
user = require_user(request)
|
||||
key = generate_uid()
|
||||
update_user(user["uid"], api_key=key)
|
||||
invalidate_user_cache(propagate=True)
|
||||
record(request, "profile.apikey.regenerate", targets=[("user", user["uid"])], user=user)
|
||||
create_notification(user["uid"], "auth.apikey", "Je API-sleutel is vernieuwd.", "/profile/api-key")
|
||||
return action_result(request, "/profile/api-key", data={"api_key": key})
|
||||
|
||||
|
||||
@router.post("/avatar/regenerate")
|
||||
async def avatar_regenerate(request: Request):
|
||||
user = require_user(request)
|
||||
update_user(user["uid"], avatar_seed=generate_uid())
|
||||
invalidate_user_cache(propagate=True)
|
||||
record(request, "profile.avatar.regenerate", targets=[("user", user["uid"])], user=user)
|
||||
return action_result(request, f"/mensen/{user['username']}")
|
||||
Reference in New Issue
Block a user