From 0b3ddbed686f345e80dee1fbc8b3567da5d7b85a Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Thu, 7 Aug 2014 15:26:09 +0200 Subject: [PATCH] add logout hook to remove keys from session --- apps/files_encryption/hooks/hooks.php | 9 ++++++++- apps/files_encryption/lib/helper.php | 1 + apps/files_encryption/lib/session.php | 8 ++++++++ apps/files_encryption/templates/settings-personal.php | 5 ++--- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 667be8b980..bd2268aa04 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -122,6 +122,14 @@ class Hooks { return $result; } + /** + * remove keys from session during logout + */ + public static function logout() { + $session = new \OCA\Encryption\Session(new \OC\Files\View()); + $session->removeKeys(); + } + /** * setup encryption backend upon user created * @note This method should never be called for users using client side encryption @@ -173,7 +181,6 @@ class Hooks { * @param array $params keys: uid, password */ public static function setPassphrase($params) { - if (\OCP\App::isEnabled('files_encryption') === false) { return true; } diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index ed42cec326..214e212b67 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -49,6 +49,7 @@ class Helper { public static function registerUserHooks() { \OCP\Util::connectHook('OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login'); + \OCP\Util::connectHook('OC_User', 'logout', 'OCA\Encryption\Hooks', 'logout'); \OCP\Util::connectHook('OC_User', 'post_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase'); \OCP\Util::connectHook('OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'preSetPassphrase'); \OCP\Util::connectHook('OC_User', 'post_createUser', 'OCA\Encryption\Hooks', 'postCreateUser'); diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php index 4b28f0ce67..84599181ba 100644 --- a/apps/files_encryption/lib/session.php +++ b/apps/files_encryption/lib/session.php @@ -121,6 +121,14 @@ class Session { } + /** + * remove keys from session + */ + public function removeKeys() { + \OC::$session->remove('publicSharePrivateKey'); + \OC::$session->remove('privateKey'); + } + /** * Sets status of encryption app * @param string $init INIT_SUCCESSFUL, INIT_EXECUTED, NOT_INITIALIZED diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php index 3d44b9fa9a..832eb75e23 100644 --- a/apps/files_encryption/templates/settings-personal.php +++ b/apps/files_encryption/templates/settings-personal.php @@ -9,14 +9,13 @@


- t( "Set your old private key password to your current log-in password." ) ); ?> + t( "Set your old private key password to your current log-in password:" ) ); ?> t( " If you don't remember your old password you can ask your administrator to recover your files." ) ); endif; ?> -