From b6ed0b4c6c3aa67737df2bebac15b9c1c2839356 Mon Sep 17 00:00:00 2001 From: Diogo Peralta Cordeiro Date: Wed, 16 Feb 2022 18:45:30 +0000 Subject: [PATCH] [CORE][Actor] Fix generic profile route --- plugins/ActivityPub/ActivityPub.php | 1 + src/Controller/{ActorFeed.php => ActorProfile.php} | 12 ++++++------ src/Routes/Actor.php | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) rename src/Controller/{ActorFeed.php => ActorProfile.php} (76%) diff --git a/plugins/ActivityPub/ActivityPub.php b/plugins/ActivityPub/ActivityPub.php index 951318e344..e46eb42646 100644 --- a/plugins/ActivityPub/ActivityPub.php +++ b/plugins/ActivityPub/ActivityPub.php @@ -188,6 +188,7 @@ class ActivityPub extends Plugin return Event::next; } switch ($route) { + case 'actor_view_id': case 'person_actor_view_id': case 'person_actor_view_nickname': case 'group_actor_view_id': diff --git a/src/Controller/ActorFeed.php b/src/Controller/ActorProfile.php similarity index 76% rename from src/Controller/ActorFeed.php rename to src/Controller/ActorProfile.php index c1eace35c3..643f4f15ec 100644 --- a/src/Controller/ActorFeed.php +++ b/src/Controller/ActorProfile.php @@ -23,23 +23,23 @@ declare(strict_types = 1); namespace App\Controller; +use App\Core\Controller; use App\Core\Router\Router; use App\Entity\Actor; -use Component\Collection\Util\Controller\FeedController; use InvalidArgumentException; -use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; -class ActorFeed extends FeedController +class ActorProfile extends Controller { - public function actorViewId(Request $request, int $id): RedirectResponse + public function actorViewId(Request $request, int $id): array { - $route_id = match (Actor::getById($id)->getType()) { + $actor = Actor::getById($id); + $route_id = match ($actor->getType()) { Actor::PERSON => 'person_actor_view_id', Actor::GROUP => 'group_actor_view_id', Actor::BOT => 'bot_actor_view_id', default => throw new InvalidArgumentException(), }; - return new RedirectResponse(Router::url($route_id, ['id' => $id]), status: 302); + return ['_redirect' => Router::url($route_id, ['id' => $id]), 'actor' => $actor]; } } diff --git a/src/Routes/Actor.php b/src/Routes/Actor.php index fdffa85d32..334ef58957 100644 --- a/src/Routes/Actor.php +++ b/src/Routes/Actor.php @@ -44,6 +44,6 @@ abstract class Actor public static function load(RouteLoader $r): void { - $r->connect(id: 'actor_view_id', uri_path: '/actor/{id<\d+>}', target: [C\ActorFeed::class, 'actorViewId']); + $r->connect(id: 'actor_view_id', uri_path: '/actor/{id<\d+>}', target: [C\ActorProfile::class, 'actorViewId']); } }