mirror of
https://github.com/getgrav/grav.git
synced 2026-07-05 14:28:38 +02:00
Merge pull request #237 from flaviocopes/feature/separate-sessions-for-site-and-admin
Feature/separate sessions for site and admin
This commit is contained in:
@@ -174,8 +174,8 @@ class Grav extends Container
|
||||
// Initialize configuration.
|
||||
$debugger->startTimer('_config', 'Configuration');
|
||||
$this['config']->init();
|
||||
$this['session']->init();
|
||||
$this['uri']->init();
|
||||
$this['session']->init();
|
||||
$this['errors']->resetHandlers();
|
||||
$debugger->init();
|
||||
$this['config']->debug();
|
||||
|
||||
@@ -21,6 +21,14 @@ class Session extends \RocketTheme\Toolbox\Session\Session
|
||||
$config = $this->grav['config'];
|
||||
|
||||
if ($config->get('system.session.enabled')) {
|
||||
// Only activate admin if we're inside the admin path.
|
||||
$is_admin = false;
|
||||
$route = $config->get('plugins.admin.route');
|
||||
$base = '/' . trim($route, '/');
|
||||
if (substr($uri->route(), 0, strlen($base)) == $base) {
|
||||
$is_admin = true;
|
||||
}
|
||||
|
||||
$session_timeout = $config->get('system.session.timeout', 1800);
|
||||
$session_path = $config->get('system.session.path', '/' . ltrim($uri->rootUrl(false), '/'));
|
||||
|
||||
@@ -30,8 +38,8 @@ class Session extends \RocketTheme\Toolbox\Session\Session
|
||||
$session_path
|
||||
);
|
||||
|
||||
$site_identifier = $config->get('site.title', 'unkown');
|
||||
$this->setName($config->get('system.session.name', 'grav_site') . '_' . substr(md5($site_identifier), 0, 7));
|
||||
$site_identifier = $config->get('site.title', 'unknown');
|
||||
$this->setName($config->get('system.session.name', 'grav_site') . '_' . substr(md5($site_identifier), 0, 7) . ($is_admin ? '_admin' : ''));
|
||||
$this->start();
|
||||
setcookie(session_name(), session_id(), time() + $session_timeout, $session_path);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user