diff options
Diffstat (limited to 'Digitigrade/Model')
| -rw-r--r-- | Digitigrade/Model/Instance.php | 9 | ||||
| -rw-r--r-- | Digitigrade/Model/Note.php | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/Digitigrade/Model/Instance.php b/Digitigrade/Model/Instance.php index 6662d7e..5545849 100644 --- a/Digitigrade/Model/Instance.php +++ b/Digitigrade/Model/Instance.php @@ -4,6 +4,7 @@ namespace Digitigrade\Model; use Digitigrade\Exception\AuthException; use Digitigrade\Exception\EndpointMissingException; use Digitigrade\GlobalConfig; +use Digitigrade\HttpResponseStatus\Unauthorized; use Digitigrade\Job\RefreshOutboundAuthToken; class Instance extends FetchableModel { @@ -80,6 +81,14 @@ class Instance extends FetchableModel { return self::findByInboundAuthToken($token); } + public static function requireByRequestHeaders(): self { + $inst = self::findByRequestHeaders(); + if ($inst == null) { + throw new Unauthorized(); + } + return $inst; + } + public static function findByDialbackSecret(string $secret): ?self { $authRecord = InstanceAuth::findWhere('secret = ?', [$secret]); if ($authRecord == null) diff --git a/Digitigrade/Model/Note.php b/Digitigrade/Model/Note.php index 7fb1221..64a2168 100644 --- a/Digitigrade/Model/Note.php +++ b/Digitigrade/Model/Note.php @@ -151,7 +151,7 @@ class Note extends PushableModel implements TimelineIncludeable { }, $this->mentions, $this->privacy->alsoVisibleTo, [$this->author])); } - protected function getRelevantServers(): array { + public function getRelevantServers(): array { $recipientActors = $this->getRelevantActors(); // reply-to and thread apex author should be covered by mentions but in case they're not: if (isset($this->inReplyTo)) |
