summaryrefslogtreecommitdiffstats
path: root/apps/files_encryption
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2015-03-02 14:53:29 +0100
committerVincent Petry <pvince81@owncloud.com>2015-03-02 14:53:29 +0100
commite61aa3723ede98d7a6bd59474279f8cc28359c48 (patch)
tree6a1c1ff23f04fcbe6d4d42c7b3e54dd1274d3a04 /apps/files_encryption
parente1f833a6112688845c90ac428d224888537ad423 (diff)
parent22bc622f9b2488a3c556039096c44d99bc46b1a4 (diff)
downloadnextcloud-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.php28
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');
}
}