[ENTITY][Actor] Add is_local, it's common to depend, and this makes it much faster, with a low space cost
This commit is contained in:
@@ -239,6 +239,7 @@ class Explorer
|
||||
'created' => new DateTime($res['published'] ?? 'now'),
|
||||
'bio' => isset($res['summary']) ? mb_substr(Security::sanitize($res['summary']), 0, 1000) : null,
|
||||
'homepage' => $res['url'] ?? $res['id'],
|
||||
'is_local' => false,
|
||||
'modified' => new DateTime(),
|
||||
];
|
||||
|
||||
|
@@ -5,6 +5,7 @@ declare(strict_types = 1);
|
||||
namespace Plugin\ActivityPub\Util\Response;
|
||||
|
||||
use App\Entity\Actor;
|
||||
use App\Util\Exception\ClientException;
|
||||
use Exception;
|
||||
use Plugin\ActivityPub\Util\Model\EntityToType\GSActorToType;
|
||||
|
||||
@@ -17,7 +18,10 @@ abstract class ActorResponse
|
||||
*/
|
||||
public static function handle(Actor $gsactor, int $status = 200): TypeResponse
|
||||
{
|
||||
$gsactor->getLocalUser(); // This throws exception if not a local user, which is intended
|
||||
return new TypeResponse(data: GSActorToType::translate($gsactor), status: $status);
|
||||
if ($gsactor->getIsLocal()) {
|
||||
return new TypeResponse(data: GSActorToType::translate($gsactor), status: $status);
|
||||
} else {
|
||||
throw new ClientException('This is a remote actor, you should request it to its source of authority instead.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user