<?php namespace App\Http\Controllers; use App\Util\ActivityPub\Helpers; use Illuminate\Http\Request; class AuthorizeInteractionController extends Controller { public function get(Request $request) { $request->validate([ 'uri' => 'required|url', ]); abort_unless((bool) config_cache('federation.activitypub.enabled'), 404); $uri = Helpers::validateUrl($request->input('uri'), true); abort_unless($uri, 404); if (! $request->user()) { return redirect('/login?next='.urlencode($uri)); } $status = Helpers::statusFetch($uri); if ($status && isset($status['id'])) { return redirect('/i/web/post/'.$status['id']); } $profile = Helpers::profileFetch($uri); if ($profile && isset($profile['id'])) { return redirect('/i/web/profile/'.$profile['id']); } return redirect('/i/web'); } }