summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2015-04-27 11:40:10 +0200
committerBjoern Schiessle <schiessle@owncloud.com>2015-05-06 11:35:45 +0200
commite7a3911c83806f0a11ebf00b96d7498815d718be (patch)
tree860d5588dca6ed8e79a4fb8502686a95cb39bc5b
parent9a159372cb31b9fe4616e5403773eb078c5ad828 (diff)
downloadnextcloud-server-e7a3911c83806f0a11ebf00b96d7498815d718be.tar.gz
nextcloud-server-e7a3911c83806f0a11ebf00b96d7498815d718be.zip
check if encryption is enbaled before we start moving keys
-rw-r--r--lib/private/encryption/update.php24
-rw-r--r--lib/private/files/storage/wrapper/encryption.php53
2 files changed, 43 insertions, 34 deletions
diff --git a/lib/private/encryption/update.php b/lib/private/encryption/update.php
index a0b0af968c6..ddcee3bae93 100644
--- a/lib/private/encryption/update.php
+++ b/lib/private/encryption/update.php
@@ -81,11 +81,13 @@ class Update {
* @param array $params
*/
public function postShared($params) {
- if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
- $path = Filesystem::getPath($params['fileSource']);
- list($owner, $ownerPath) = $this->getOwnerPath($path);
- $absPath = '/' . $owner . '/files/' . $ownerPath;
- $this->update($absPath);
+ if ($this->encryptionManager->isEnabled()) {
+ if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
+ $path = Filesystem::getPath($params['fileSource']);
+ list($owner, $ownerPath) = $this->getOwnerPath($path);
+ $absPath = '/' . $owner . '/files/' . $ownerPath;
+ $this->update($absPath);
+ }
}
}
@@ -95,11 +97,13 @@ class Update {
* @param array $params
*/
public function postUnshared($params) {
- if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
- $path = Filesystem::getPath($params['fileSource']);
- list($owner, $ownerPath) = $this->getOwnerPath($path);
- $absPath = '/' . $owner . '/files/' . $ownerPath;
- $this->update($absPath);
+ if ($this->encryptionManager->isEnabled()) {
+ if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
+ $path = Filesystem::getPath($params['fileSource']);
+ list($owner, $ownerPath) = $this->getOwnerPath($path);
+ $absPath = '/' . $owner . '/files/' . $ownerPath;
+ $this->update($absPath);
+ }
}
}
diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php
index 439dc0ab6d3..30ef509f91a 100644
--- a/lib/private/files/storage/wrapper/encryption.php
+++ b/lib/private/files/storage/wrapper/encryption.php
@@ -220,23 +220,23 @@ class Encryption extends Wrapper {
* @return bool
*/
public function rename($path1, $path2) {
- $source = $this->getFullPath($path1);
- if ($this->util->isExcluded($source)) {
- return $this->storage->rename($path1, $path2);
- }
$result = $this->storage->rename($path1, $path2);
- if ($result) {
- $target = $this->getFullPath($path2);
- if (isset($this->unencryptedSize[$source])) {
- $this->unencryptedSize[$target] = $this->unencryptedSize[$source];
- }
- $keysRenamed = $this->keyStorage->renameKeys($source, $target);
- if ($keysRenamed &&
- dirname($source) !== dirname($target) &&
- $this->util->isFile($target)
- ) {
- $this->update->update($target);
+
+ if ($result && $this->encryptionManager->isEnabled()) {
+ $source = $this->getFullPath($path1);
+ if (!$this->util->isExcluded($source)) {
+ $target = $this->getFullPath($path2);
+ if (isset($this->unencryptedSize[$source])) {
+ $this->unencryptedSize[$target] = $this->unencryptedSize[$source];
+ }
+ $keysRenamed = $this->keyStorage->renameKeys($source, $target);
+ if ($keysRenamed &&
+ dirname($source) !== dirname($target) &&
+ $this->util->isFile($target)
+ ) {
+ $this->update->update($target);
+ }
}
}
@@ -251,22 +251,27 @@ class Encryption extends Wrapper {
* @return bool
*/
public function copy($path1, $path2) {
+
$fullPath1 = $this->getFullPath($path1);
$fullPath2 = $this->getFullPath($path2);
+
if ($this->util->isExcluded($fullPath1)) {
return $this->storage->copy($path1, $path2);
}
- $source = $this->getFullPath($path1);
$result = $this->storage->copy($path1, $path2);
- if ($result) {
- $target = $this->getFullPath($path2);
- $keysCopied = $this->keyStorage->copyKeys($source, $target);
- if ($keysCopied &&
- dirname($source) !== dirname($target) &&
- $this->util->isFile($target)
- ) {
- $this->update->update($target);
+
+ if ($result && $this->encryptionManager->isEnabled()) {
+ $source = $this->getFullPath($path1);
+ if (!$this->util->isExcluded($source)) {
+ $target = $this->getFullPath($path2);
+ $keysCopied = $this->keyStorage->copyKeys($source, $target);
+ if ($keysCopied &&
+ dirname($source) !== dirname($target) &&
+ $this->util->isFile($target)
+ ) {
+ $this->update->update($target);
+ }
}
$data = $this->getMetaData($path1);
$this->getCache()->put($path2, ['encrypted' => $data['encrypted']]);