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. * @deprecated 2019.12 use BaseUrl::redirect instead
* If you want to redirect to a external URL, use System::externalRedirectTo() * @see BaseURL::redirect()
*
* @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 internalRedirect($toUrl = '', $ssl = false) public function internalRedirect($toUrl = '', $ssl = false)
{ {
if (!empty(parse_url($toUrl, PHP_URL_SCHEME))) { $this->baseURL->redirect($toUrl, $ssl);
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);
} }
/** /**
@ -827,7 +817,7 @@ class App
if (!empty(parse_url($toUrl, PHP_URL_SCHEME))) { if (!empty(parse_url($toUrl, PHP_URL_SCHEME))) {
Core\System::externalRedirect($toUrl); Core\System::externalRedirect($toUrl);
} else { } else {
$this->internalRedirect($toUrl); $this->baseURL->redirect($toUrl);
} }
} }
} }

View File

@ -3,8 +3,10 @@
namespace Friendica\App; namespace Friendica\App;
use Friendica\Core\Config\Configuration; use Friendica\Core\Config\Configuration;
use Friendica\Core\System;
use Friendica\Util\Network; use Friendica\Util\Network;
use Friendica\Util\Strings; use Friendica\Util\Strings;
use Friendica\Network\HTTPException;
/** /**
* A class which checks and contains the basic * A class which checks and contains the basic
@ -414,4 +416,23 @@ class BaseURL
return $url; 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);
}
} }