From bc9c83b6c33d460a574fbeb764c23bfbe941b4c0 Mon Sep 17 00:00:00 2001 From: winter Date: Thu, 23 Jan 2025 18:55:52 +0000 Subject: implement blocking users it doesn't work yet for notifications! but i think i got it in most other places --- routes/actor.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'routes/actor.php') diff --git a/routes/actor.php b/routes/actor.php index a3b69d1..125c733 100644 --- a/routes/actor.php +++ b/routes/actor.php @@ -97,4 +97,28 @@ Router::getInstance()->mount('/actor/:id/rejectedFollow', function (array $args) throw new Unauthorized('please authenticate yourself on behalf of the followed actor'); } $target->rejectPendingFollowFrom($initiator); +}); + +Router::getInstance()->mount('/actor/:id/block', function (array $args) { + $target = Actor::find($args['id']); + if ($target == null || !$target->isLocal || $target->deleted) { + throw new NotFound(); + } + $initiator = Actor::findByRequestHeaders(); + if ($initiator == null) { + throw new Unauthorized('please authenticate yourself on behalf of the initiating actor'); + } + $initiator->block($target); +}); + +Router::getInstance()->mount('/actor/:id/unblock', function (array $args) { + $target = Actor::find($args['id']); + if ($target == null || !$target->isLocal || $target->deleted) { + throw new NotFound(); + } + $initiator = Actor::findByRequestHeaders(); + if ($initiator == null) { + throw new Unauthorized('please authenticate yourself on behalf of the initiating actor'); + } + $initiator->unblock($target); }); \ No newline at end of file -- cgit v1.3