Przeglądaj źródła

Update routes, add legacy webfinger profile redirect

Daniel Supernault 4 lat temu
rodzic
commit
93c7af7464
2 zmienionych plików z 16 dodań i 0 usunięć
  1. 15 0
      app/Http/Controllers/SiteController.php
  2. 1 0
      routes/web.php

+ 15 - 0
app/Http/Controllers/SiteController.php

@@ -139,4 +139,19 @@ class SiteController extends Controller
 
 		return redirect($url);
 	}
+
+	public function legacyWebfingerRedirect(Request $request, $username, $domain)
+	{
+		$un = '@'.$username.'@'.$domain;
+		$profile = Profile::whereUsername($un)
+			->firstOrFail();
+
+		if($profile->domain == null) {
+			$url = "/$profile->username";
+		} else {
+			$url = $request->user() ? "/i/web/profile/_/{$profile->id}" : $profile->url();
+		}
+
+		return redirect($url);
+	}
 }

+ 1 - 0
routes/web.php

@@ -492,6 +492,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact
 	Route::get('p/{username}/{id}.json', 'StatusController@showObject');
 	Route::get('p/{username}/{id}', 'StatusController@show');
 	Route::get('{username}/embed', 'ProfileController@embed');
+	Route::get('@{username}@{domain}', 'SiteController@legacyWebfingerRedirect');
 	Route::get('@{username}', 'SiteController@legacyProfileRedirect');
 	Route::get('{username}', 'ProfileController@show');
 });