Move App::internalRedirect to BaseUrl::redirect

This commit is contained in:
Philipp Holzer 2019-12-03 21:11:42 +01:00
parent 0d744be732
commit 5bb63e59e0
No known key found for this signature in database
GPG Key ID: D8365C3D36B77D90
2 changed files with 25 additions and 14 deletions

View File

@ -796,22 +796,12 @@ class App
}
/**
* Redirects to another module relative to the current Friendica base.
* If you want to redirect to a external URL, use System::externalRedirectTo()
*
* @param string $toUrl The destination URL (Default is empty, which is the default page of the Friendica node)
* @param bool $ssl if true, base URL will try to get called with https:// (works just for relative paths)
*
* @throws HTTPException\InternalServerErrorException In Case the given URL is not relative to the Friendica node
* @deprecated 2019.12 use BaseUrl::redirect instead
* @see BaseURL::redirect()
*/
public function internalRedirect($toUrl = '', $ssl = false)
{
if (!empty(parse_url($toUrl, PHP_URL_SCHEME))) {
throw new HTTPException\InternalServerErrorException("'$toUrl is not a relative path, please use System::externalRedirectTo");
}
$redirectTo = $this->baseURL->get($ssl) . '/' . ltrim($toUrl, '/');
Core\System::externalRedirect($redirectTo);
$this->baseURL->redirect($toUrl, $ssl);
}
/**
@ -827,7 +817,7 @@ class App
if (!empty(parse_url($toUrl, PHP_URL_SCHEME))) {
Core\System::externalRedirect($toUrl);
} else {
$this->internalRedirect($toUrl);
$this->baseURL->redirect($toUrl);
}
}
}

View File

@ -3,8 +3,10 @@
namespace Friendica\App;
use Friendica\Core\Config\Configuration;
use Friendica\Core\System;
use Friendica\Util\Network;
use Friendica\Util\Strings;
use Friendica\Network\HTTPException;
/**
* A class which checks and contains the basic
@ -414,4 +416,23 @@ class BaseURL
return $url;
}
}
/**
* Redirects to another module relative to the current Friendica base URL.
* If you want to redirect to a external URL, use System::externalRedirectTo()
*
* @param string $toUrl The destination URL (Default is empty, which is the default page of the Friendica node)
* @param bool $ssl if true, base URL will try to get called with https:// (works just for relative paths)
*
* @throws HTTPException\InternalServerErrorException In Case the given URL is not relative to the Friendica node
*/
public function redirect($toUrl = '', $ssl = false)
{
if (!empty(parse_url($toUrl, PHP_URL_SCHEME))) {
throw new HTTPException\InternalServerErrorException("'$toUrl is not a relative path, please use System::externalRedirectTo");
}
$redirectTo = $this->get($ssl) . '/' . ltrim($toUrl, '/');
System::externalRedirect($redirectTo);
}
}