listen to the post_passwordReset hook, backup the old keys and create a new key pair for the user

remotes/origin/fix-10825
Bjoern Schiessle 2014-10-29 12:45:13 +07:00 committed by Lukas Reschke
parent 11ab457b72
commit f6efbfcf0b
3 changed files with 26 additions and 0 deletions

@ -263,6 +263,19 @@ class Hooks {
}
}
/**
* after password reset we create a new key pair for the user
*
* @param array $params
*/
public static function postPasswordReset($params) {
$uid = $params['uid'];
$password = $params['password'];
$util = new Util(new \OC\Files\View(), $uid);
$util->replaceUserKeys($password);
}
/*
* check if files can be encrypted to every user.
*/

@ -70,6 +70,7 @@ class Helper {
\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');
}
/**

@ -124,6 +124,18 @@ class Util {
}
}
/**
* 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
*