feat(admin): add setting to split admin and front-end session (#1096)

This commit is contained in:
maxfrigge
2016-10-13 01:03:30 +02:00
committed by Andy Miller
parent 0cadb0cd90
commit 6300ab8a03
2 changed files with 18 additions and 1 deletions

View File

@@ -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

View File

@@ -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);
}