diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-03-02 14:53:29 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-03-02 14:53:29 +0100 |
commit | e61aa3723ede98d7a6bd59474279f8cc28359c48 (patch) | |
tree | 6a1c1ff23f04fcbe6d4d42c7b3e54dd1274d3a04 /apps/files_encryption | |
parent | e1f833a6112688845c90ac428d224888537ad423 (diff) | |
parent | 22bc622f9b2488a3c556039096c44d99bc46b1a4 (diff) | |
download | nextcloud-server-e61aa3723ede98d7a6bd59474279f8cc28359c48.tar.gz nextcloud-server-e61aa3723ede98d7a6bd59474279f8cc28359c48.zip |
Merge pull request #14573 from owncloud/enc-migrate-disable-updater
Disable the cache updater when doing the encryption migration
Diffstat (limited to 'apps/files_encryption')
-rw-r--r-- | apps/files_encryption/lib/migration.php | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/apps/files_encryption/lib/migration.php b/apps/files_encryption/lib/migration.php index 7a036ade3fc..ad954db7ebb 100644 --- a/apps/files_encryption/lib/migration.php +++ b/apps/files_encryption/lib/migration.php @@ -1,5 +1,5 @@ <?php - /** +/** * ownCloud * * @copyright (C) 2014 ownCloud, Inc. @@ -35,6 +35,7 @@ class Migration { public function __construct() { $this->view = new \OC\Files\View(); + $this->view->getUpdater()->disable(); $this->public_share_key_id = Helper::getPublicShareKeyId(); $this->recovery_key_id = Helper::getRecoveryKeyId(); } @@ -50,7 +51,7 @@ class Migration { $this->reorganizeFolderStructureForUser($user); } $offset += $limit; - } while(count($users) >= $limit); + } while (count($users) >= $limit); } public function reorganizeSystemFolderStructure() { @@ -74,6 +75,10 @@ class Migration { $this->view->deleteAll('/owncloud_private_key'); $this->view->deleteAll('/files_encryption/share-keys'); $this->view->deleteAll('/files_encryption/keyfiles'); + $storage = $this->view->getMount('')->getStorage(); + $storage->getScanner()->scan('files_encryption'); + $storage->getCache()->remove('owncloud_private_key'); + $storage->getCache()->remove('public-keys'); } @@ -96,6 +101,7 @@ class Migration { } // delete old folders $this->deleteOldKeys($user); + $this->view->getMount('/' . $user)->getStorage()->getScanner()->scan('files_encryption'); } } @@ -127,7 +133,7 @@ class Migration { while (($oldPublicKey = readdir($dh)) !== false) { if (!\OC\Files\Filesystem::isIgnoredDir($oldPublicKey)) { $newPublicKey = substr($oldPublicKey, 0, strlen($oldPublicKey) - strlen('.public.key')) . '.publicKey'; - $this->view->rename('public-keys/' . $oldPublicKey , 'files_encryption/public_keys/' . $newPublicKey); + $this->view->rename('public-keys/' . $oldPublicKey, 'files_encryption/public_keys/' . $newPublicKey); } } closedir($dh); @@ -141,7 +147,7 @@ class Migration { while (($oldPrivateKey = readdir($dh)) !== false) { if (!\OC\Files\Filesystem::isIgnoredDir($oldPrivateKey)) { $newPrivateKey = substr($oldPrivateKey, 0, strlen($oldPrivateKey) - strlen('.private.key')) . '.privateKey'; - $this->view->rename('owncloud_private_key/' . $oldPrivateKey , 'files_encryption/' . $newPrivateKey); + $this->view->rename('owncloud_private_key/' . $oldPrivateKey, 'files_encryption/' . $newPrivateKey); } } closedir($dh); @@ -149,10 +155,10 @@ class Migration { } private function renameUsersPrivateKey($user) { - $oldPrivateKey = $user . '/files_encryption/' . $user . '.private.key'; - $newPrivateKey = substr($oldPrivateKey, 0, strlen($oldPrivateKey) - strlen('.private.key')) . '.privateKey'; + $oldPrivateKey = $user . '/files_encryption/' . $user . '.private.key'; + $newPrivateKey = substr($oldPrivateKey, 0, strlen($oldPrivateKey) - strlen('.private.key')) . '.privateKey'; - $this->view->rename($oldPrivateKey, $newPrivateKey); + $this->view->rename($oldPrivateKey, $newPrivateKey); } private function getFileName($file, $trash) { @@ -186,7 +192,7 @@ class Migration { } private function getFilePath($path, $user, $trash) { - $offset = $trash ? strlen($user . '/files_trashbin/keyfiles') : strlen($user . '/files_encryption/keyfiles'); + $offset = $trash ? strlen($user . '/files_trashbin/keyfiles') : strlen($user . '/files_encryption/keyfiles'); return substr($path, $offset); } @@ -215,7 +221,7 @@ class Migration { $extension = $this->getExtension($file, $trash); $targetDir = $this->getTargetDir($user, $filePath, $filename, $extension, $trash); $this->createPathForKeys($targetDir); - $this->view->copy($path . '/' . $file, $targetDir . '/fileKey'); + $this->view->rename($path . '/' . $file, $targetDir . '/fileKey'); $this->renameShareKeys($user, $filePath, $filename, $targetDir, $trash); } } @@ -258,10 +264,10 @@ class Migration { if ($this->view->is_dir($oldShareKeyPath . '/' . $file)) { continue; } else { - if (substr($file, 0, strlen($filename) +1) === $filename . '.') { + if (substr($file, 0, strlen($filename) + 1) === $filename . '.') { $uid = $this->getUidFromShareKey($file, $filename, $trash); - $this->view->copy($oldShareKeyPath . '/' . $file, $target . '/' . $uid . '.shareKey'); + $this->view->rename($oldShareKeyPath . '/' . $file, $target . '/' . $uid . '.shareKey'); } } |