check if encryption is enbaled before we start moving keys

remotes/origin/poc-doctrine-migrations
Bjoern Schiessle 11 years ago
parent 9a159372cb
commit e7a3911c83
  1. 24
      lib/private/encryption/update.php
  2. 53
      lib/private/files/storage/wrapper/encryption.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);
}
}
}

@ -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']]);

Loading…
Cancel
Save