diff options
author | ringmaster <epithet@gmail.com> | 2014-05-12 11:08:28 -0400 |
---|---|---|
committer | ringmaster <epithet@gmail.com> | 2014-05-12 11:08:28 -0400 |
commit | 75bc25f906c9b5f1cb0f1da8f3ec05b5e42deb9b (patch) | |
tree | 9d85bc129fb2856cfd7e1388041207d60e9be3ec /lib | |
parent | 1d18fd4e6da16895ac1ef879c7b416f555bb385d (diff) | |
download | nextcloud-server-75bc25f906c9b5f1cb0f1da8f3ec05b5e42deb9b.tar.gz nextcloud-server-75bc25f906c9b5f1cb0f1da8f3ec05b5e42deb9b.zip |
Allow apps to create custom session handlers.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/base.php | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/base.php b/lib/base.php index f8266ac649f..d011a2e9e28 100644 --- a/lib/base.php +++ b/lib/base.php @@ -378,9 +378,17 @@ class OC { //set the session object to a dummy session so code relying on the session existing still works self::$session = new \OC\Session\Memory(''); + // Let the session name be changed in the initSession Hook + $sessionName = OC_Util::getInstanceId(); + try { - // set the session name to the instance id - which is unique - self::$session = new \OC\Session\Internal(OC_Util::getInstanceId()); + // Allow session apps to create a custom session object + $useCustomSession = false; + OC_Hook::emit('OC', 'initSession', array('session' => &self::$session, 'sessionName' => &$sessionName, 'useCustomSession' => &$useCustomSession)); + if(!$useCustomSession) { + // set the session name to the instance id - which is unique + self::$session = new \OC\Session\Internal($sessionName); + } // if session cant be started break with http 500 error } catch (Exception $e) { //show the user a detailed error page @@ -537,6 +545,7 @@ class OC { self::$server = new \OC\Server(); self::initTemplateEngine(); + OC_App::loadApps(array('session')); if (!self::$CLI) { self::initSession(); } else { |