feat: add audit log tables, indexes, and CLI/content recording hooks

This commit is contained in:
2026-06-11 20:28:17 +00:00
parent 3862958fae
commit 78d70d9b08
58 changed files with 4456 additions and 25 deletions
+21
View File
@@ -10,6 +10,7 @@ from devplacepy.utils import (
XP_FOLLOW,
)
from devplacepy.responses import action_result
from devplacepy.services.audit import record as audit
logger = logging.getLogger(__name__)
router = APIRouter()
@@ -47,6 +48,16 @@ async def follow_user(request: Request, username: str):
award_rewards(target["uid"], XP_FOLLOW)
logger.info(f"{user['username']} followed {username}")
audit.record(
request,
"follow.follow",
user=user,
target_type="user",
target_uid=target["uid"],
target_label=username,
summary=f"{user['username']} followed {username}",
links=[audit.target("user", target["uid"], username)],
)
return action_result(request, f"/profile/{username}")
@@ -63,5 +74,15 @@ async def unfollow_user(request: Request, username: str):
if existing:
follows.delete(id=existing["id"])
logger.info(f"{user['username']} unfollowed {username}")
audit.record(
request,
"follow.unfollow",
user=user,
target_type="user",
target_uid=target["uid"],
target_label=username,
summary=f"{user['username']} unfollowed {username}",
links=[audit.target("user", target["uid"], username)],
)
return action_result(request, f"/profile/{username}")