aboutsummaryrefslogtreecommitdiffhomepage
path: root/routes/actor.php
diff options
context:
space:
mode:
authorwinter2025-01-23 18:55:52 +0000
committerwinter2025-01-23 18:55:58 +0000
commitbc9c83b6c33d460a574fbeb764c23bfbe941b4c0 (patch)
tree5d9e816b56feea462d15e391544b0b13eeb47c8d /routes/actor.php
parentddccaf16f39a4bf710266edc389fcde124e7ef56 (diff)
implement blocking users
it doesn't work yet for notifications! but i think i got it in most other places
Diffstat (limited to 'routes/actor.php')
-rw-r--r--routes/actor.php24
1 files changed, 24 insertions, 0 deletions
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