diff options
Diffstat (limited to 'routes/note.php')
| -rw-r--r-- | routes/note.php | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/routes/note.php b/routes/note.php index 90009d2..2612f0f 100644 --- a/routes/note.php +++ b/routes/note.php @@ -2,21 +2,25 @@ use Digitigrade\HttpResponseStatus\Forbidden; use Digitigrade\HttpResponseStatus\NotFound; +use Digitigrade\HttpResponseStatus\PolicyRejected; use Digitigrade\HttpResponseStatus\TemporaryRedirect; use Digitigrade\Model\Instance; use Digitigrade\Model\Note; use Digitigrade\Model\NotePrivacyScope; use Digitigrade\Model\UserAccount; +use Digitigrade\PolicyManager; use Digitigrade\Router; Router::getInstance()->mount('/note/:id', function (array $args) { $note = Note::find($args['id']); + $instance = Instance::findByRequestHeaders(); if ($note == null || $note->deleted) { throw new NotFound("i don't know that note"); } if (!$note->author->isLocal) { throw new NotFound("i don't want to tell you about non local notes sorry"); } + PolicyManager::getInstance()->checkFederationOrThrow($note, $instance); if (isset($_SERVER['HTTP_ACCEPT']) && str_contains($_SERVER['HTTP_ACCEPT'], 'text/html')) { throw new TemporaryRedirect('/@/' . $note->author->handle . "/note/$note->id"); } |
