Split goaway to System::externalRedirectTo() and App->internalRedirect()

This commit is contained in:
Philipp Holzer 2018-10-19 20:11:27 +02:00
parent 2ef81108b3
commit d00ddc01af
No known key found for this signature in database
GPG key ID: 517BE60E2CE5C8A5
61 changed files with 286 additions and 266 deletions

View file

@ -194,7 +194,7 @@ class Authentication extends BaseObject
Addon::callHooks('logged_in', $a->user);
if (($a->module !== 'home') && isset($_SESSION['return_url'])) {
goaway($a->getbaseUrl() . '/' . $_SESSION['return_url']);
$a->internalRedirect($_SESSION['return_url']);
}
}
}

View file

@ -5,6 +5,7 @@
namespace Friendica\Core;
use Friendica\BaseObject;
use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Util\XML;
/**
@ -236,6 +237,23 @@ class System extends BaseObject
return max($load_arr[0], $load_arr[1]);
}
/**
* Redirects to an external URL (fully qualified URL)
* If you want to route relative to the current Friendica base, use App->internalRedirect()
*
* @param string $url The new Location to redirect
* @throws InternalServerErrorException If the URL is not fully qualified
*/
public static function externalRedirect($url)
{
if (!filter_var($url, FILTER_VALIDATE_URL)) {
throw new InternalServerErrorException('URL is not a fully qualified URL, please use App->internalRedirect() instead');
}
header("Location: $url");
exit();
}
/// @todo Move the following functions from boot.php
/*
function killme()

View file

@ -272,6 +272,6 @@ class UserImport
Worker::add(PRIORITY_HIGH, 'Notifier', 'relocate', $newuid);
info(L10n::t("Done. You can now login with your username and password"));
$a->redirect('login');
$a->internalRedirect('login');
}
}