From f449c560c4bc5cb3d7a7cdda95b8a66354f68caf Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Fri, 20 May 2016 10:38:43 -0600 Subject: [PATCH] fix for getting admin route when `Uri::init()` is called after `Session::init()` --- system/src/Grav/Common/Session.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/system/src/Grav/Common/Session.php b/system/src/Grav/Common/Session.php index e99151f3f..ee4ab5be9 100644 --- a/system/src/Grav/Common/Session.php +++ b/system/src/Grav/Common/Session.php @@ -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);