From 6300ab8a03be3bc8cfc5fb8852154e8f82bf2438 Mon Sep 17 00:00:00 2001 From: maxfrigge Date: Thu, 13 Oct 2016 01:03:30 +0200 Subject: [PATCH] feat(admin): add setting to split admin and front-end session (#1096) --- system/blueprints/config/system.yaml | 12 ++++++++++++ system/src/Grav/Common/Session.php | 7 ++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/system/blueprints/config/system.yaml b/system/blueprints/config/system.yaml index 84d215d12..edf608711 100644 --- a/system/blueprints/config/system.yaml +++ b/system/blueprints/config/system.yaml @@ -967,6 +967,18 @@ form: label: PLUGIN_ADMIN.SESSION_PATH help: PLUGIN_ADMIN.SESSION_PATH_HELP + session.split_admin: + type: toggle + label: PLUGIN_ADMIN.SESSION_SPLIT + help: PLUGIN_ADMIN.SESSION_SPLIT_HELP + highlight: 1 + options: + 1: PLUGIN_ADMIN.YES + 0: PLUGIN_ADMIN.NO + default: true + validate: + type: bool + advanced: type: section title: PLUGIN_ADMIN.ADVANCED diff --git a/system/src/Grav/Common/Session.php b/system/src/Grav/Common/Session.php index 9f83314fe..0298f75e7 100644 --- a/system/src/Grav/Common/Session.php +++ b/system/src/Grav/Common/Session.php @@ -77,7 +77,12 @@ class Session extends BaseSession $unique_identifier = GRAV_ROOT; $inflector = new Inflector(); - $this->setName($inflector->hyphenize($config->get('system.session.name', 'grav_site')) . '-' . substr(md5($unique_identifier), 0, 7) . ($is_admin ? '-admin' : '')); + $session_name = $inflector->hyphenize($config->get('system.session.name', 'grav_site')) . '-' . substr(md5($unique_identifier), 0, 7); + $split_admin_session = $config->get('system.session.split_admin', true); + if ($is_admin && $split_admin_session) { + $session_name .= '-admin'; + } + $this->setName($session_name); $this->start(); setcookie(session_name(), session_id(), time() + $session_timeout, $session_path, $domain, $secure, $httponly); }