}\r
}\r
\r
+ /**\r
+ * after password reset we create a new key pair for the user\r
+ *\r
+ * @param array $params\r
+ */\r
+ public static function postPasswordReset($params) {\r
+ $uid = $params['uid'];\r
+ $password = $params['password'];\r
+\r
+ $util = new Util(new \OC\Files\View(), $uid);\r
+ $util->replaceUserKeys($password);\r
+ }\r
+\r
/*\r
* check if files can be encrypted to every user.\r
*/\r
\OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Encryption\Hooks', 'preDelete');
\OCP\Util::connectHook('OC_Filesystem', 'post_umount', 'OCA\Encryption\Hooks', 'postUmount');
\OCP\Util::connectHook('OC_Filesystem', 'umount', 'OCA\Encryption\Hooks', 'preUmount');
+ \OCP\Util::connectHook('\OC\Core\LostPassword\Controller\LostController', 'post_passwordReset', 'OCA\Encryption\Hooks', 'postPasswordReset');
}
/**
}
}
+ /**
+ * create a new public/private key pair for the user
+ *
+ * @param string $password password for the private key
+ */
+ public function replaceUserKeys($password) {
+ $this->backupAllKeys('password_reset');
+ $this->view->unlink($this->publicKeyPath);
+ $this->view->unlink($this->privateKeyPath);
+ $this->setupServerSide($password);
+ }
+
/**
* Sets up user folders and keys for serverside encryption
*