From: Björn Schießle Date: Thu, 13 Jun 2013 11:17:35 +0000 (+0200) Subject: Merge branch 'master' into files_encryption_check_private_key X-Git-Tag: v6.0.0alpha2~641^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=7cfb0dc406910f66eaefc8651fd655a78883f241;p=nextcloud-server.git Merge branch 'master' into files_encryption_check_private_key Conflicts: apps/files_encryption/appinfo/app.php apps/files_encryption/lib/util.php --- 7cfb0dc406910f66eaefc8651fd655a78883f241 diff --cc apps/files_encryption/appinfo/app.php index 6e68d81ba00,f69e04b5bbf..419bef1edef --- a/apps/files_encryption/appinfo/app.php +++ b/apps/files_encryption/appinfo/app.php @@@ -10,46 -10,50 +10,51 @@@ OC::$CLASSPATH['OCA\Encryption\Session' OC::$CLASSPATH['OCA\Encryption\Capabilities'] = 'files_encryption/lib/capabilities.php'; OC::$CLASSPATH['OCA\Encryption\Helper'] = 'files_encryption/lib/helper.php'; - OC_FileProxy::register(new OCA\Encryption\Proxy()); + if (!OC_Config::getValue('maintenance', false)) { + OC_FileProxy::register(new OCA\Encryption\Proxy()); - // User related hooks - OCA\Encryption\Helper::registerUserHooks(); + // User related hooks + OCA\Encryption\Helper::registerUserHooks(); - // Sharing related hooks - OCA\Encryption\Helper::registerShareHooks(); + // Sharing related hooks + OCA\Encryption\Helper::registerShareHooks(); - // Filesystem related hooks - OCA\Encryption\Helper::registerFilesystemHooks(); + // Filesystem related hooks + OCA\Encryption\Helper::registerFilesystemHooks(); - stream_wrapper_register('crypt', 'OCA\Encryption\Stream'); + stream_wrapper_register('crypt', 'OCA\Encryption\Stream'); - // check if we are logged in - if (OCP\User::isLoggedIn()) { + // check if we are logged in + if (OCP\User::isLoggedIn()) { - // ensure filesystem is loaded - if(!\OC\Files\Filesystem::$loaded) { - \OC_Util::setupFS(); - } + // ensure filesystem is loaded + if (!\OC\Files\Filesystem::$loaded) { + \OC_Util::setupFS(); + } - $view = new OC_FilesystemView('/'); - $session = new \OCA\Encryption\Session($view); + $view = new OC_FilesystemView('/'); + $session = new \OCA\Encryption\Session($view); - $user = \OCP\USER::getUser(); - // check if user has a private key - if ( - !$view->file_exists('/' . $user . '/files_encryption/' . $user . '.private.key') - && OCA\Encryption\Crypt::mode() === 'server' - ) { ++ $user = \OCP\USER::getUser(); + // check if user has a private key + if ( - !$session->getPrivateKey(\OCP\USER::getUser()) ++ !$view->file_exists('/' . $user . '/files_encryption/' . $user . '.private.key') + && OCA\Encryption\Crypt::mode() === 'server' + ) { - // Force the user to log-in again if the encryption key isn't unlocked - // (happens when a user is logged in before the encryption app is - // enabled) - OCP\User::logout(); + // Force the user to log-in again if the encryption key isn't unlocked + // (happens when a user is logged in before the encryption app is + // enabled) + OCP\User::logout(); - header("Location: " . OC::$WEBROOT . '/'); + header("Location: " . OC::$WEBROOT . '/'); - exit(); + exit(); + } } + } else { + // logout user if we are in maintenance to force re-login + OCP\User::logout(); } // Register settings scripts diff --cc apps/files_encryption/hooks/hooks.php index 4434df8f147,0580b713d1a..7698b95cfd3 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@@ -69,13 -64,16 +69,16 @@@ class Hooks $session = new \OCA\Encryption\Session($view); - $session->setPrivateKey($privateKey, $params['uid']); + $session->setPrivateKey($privateKey); // Check if first-run file migration has already been performed - $migrationCompleted = $util->getMigrationStatus(); + $ready = false; + if ($util->getMigrationStatus() === Util::MIGRATION_OPEN) { + $ready = $util->beginMigration(); + } // If migration not yet done - if (!$migrationCompleted) { + if ($ready) { $userView = new \OC_FilesystemView('/' . $params['uid']);