summaryrefslogtreecommitdiffstats
path: root/apps/files_encryption/hooks
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-05-21 09:57:45 +0200
committerVincent Petry <pvince81@owncloud.com>2014-05-21 09:57:45 +0200
commit9b23a210c9b33c40364e207b5791e550efd2b72f (patch)
tree62d2396bbdbd51db773333c6d111e6ce51ae3ff0 /apps/files_encryption/hooks
parent40fc1d5b4b3b05b9d2e036f3d853668a38b0e0c2 (diff)
parentd9f715bdad6ced747924567638471a7402726abf (diff)
downloadnextcloud-server-9b23a210c9b33c40364e207b5791e550efd2b72f.tar.gz
nextcloud-server-9b23a210c9b33c40364e207b5791e550efd2b72f.zip
Merge pull request #8637 from owncloud/enc_improved_error_handling
[encryption] improved error handling during password change
Diffstat (limited to 'apps/files_encryption/hooks')
-rw-r--r--apps/files_encryption/hooks/hooks.php10
1 files changed, 7 insertions, 3 deletions
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index c1ccb927df5..6e375f99a8e 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -81,7 +81,7 @@ class Hooks {
// Check if first-run file migration has already been performed
$ready = false;
$migrationStatus = $util->getMigrationStatus();
- if ($migrationStatus === Util::MIGRATION_OPEN) {
+ if ($migrationStatus === Util::MIGRATION_OPEN && $session !== false) {
$ready = $util->beginMigration();
} elseif ($migrationStatus === Util::MIGRATION_IN_PROGRESS) {
// refuse login as long as the initial encryption is running
@@ -222,10 +222,14 @@ class Hooks {
$util = new Util($view, $user);
$recoveryPassword = isset($params['recoveryPassword']) ? $params['recoveryPassword'] : null;
+ // we generate new keys if...
+ // ...we have a recovery password and the user enabled the recovery key
+ // ...encryption was activated for the first time (no keys exists)
+ // ...the user doesn't have any files
if (($util->recoveryEnabledForUser() && $recoveryPassword)
- || !$util->userKeysExists()) {
+ || !$util->userKeysExists()
+ || !$view->file_exists($user . '/files')) {
- $recoveryPassword = $params['recoveryPassword'];
$newUserPassword = $params['password'];
// make sure that the users home is mounted