fix for getting admin route when Uri::init() is called after Session::init()

This commit is contained in:
Andy Miller
2016-05-20 10:38:43 -06:00
parent 77d03b6a46
commit f449c560c4

View File

@@ -31,15 +31,18 @@ class Session extends BaseSession
$config = $this->grav['config'];
$is_admin = false;
$base_url = $uri->rootUrl(false);
$session_timeout = $config->get('system.session.timeout', 1800);
$session_path = $config->get('system.session.path', '/' . ltrim($uri->rootUrl(false), '/'));
$session_path = $config->get('system.session.path', '/' . ltrim($base_url, '/'));
// Activate admin if we're inside the admin path.
if ($config->get('plugins.admin.enabled')) {
$route = $config->get('plugins.admin.route');
// Uri::route() is not processed yet, let's quickly get what we need
$current_route = str_replace($base_url, '', parse_url($uri->url(true), PHP_URL_PATH));
$base = '/' . trim($route, '/');
if (substr($uri->route(), 0, strlen($base)) == $base) {
if (substr($current_route, 0, strlen($base)) == $base) {
$session_timeout = $config->get('plugins.admin.session.timeout', 1800);
$is_admin = true;
}
@@ -50,7 +53,7 @@ class Session extends BaseSession
parent::__construct($session_timeout, $session_path);
$domain = $uri->host();
if ($domain == 'localhost') {
if ($domain === 'localhost') {
$domain = '';
}
$secure = $config->get('system.session.secure', false);