feat: add audit log tables, indexes, and CLI/content recording hooks
This commit is contained in:
@@ -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}")
|
||||
|
||||
Reference in New Issue
Block a user