Commit f6efbfcf authored by Bjoern Schiessle's avatar Bjoern Schiessle Committed by Lukas Reschke
Browse files

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

parent 11ab457b
......@@ -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
*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment