mirror of
https://github.com/nextcloud/server.git
synced 2026-02-20 08:29:10 -05:00
fix(encryption): Correctly set encrypted to 0 when copying
If encryption got disabled, copying should set encrypted to 0 for the new unencrypted copy. For instance when using encryption:decrypt-all Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
parent
419711cd85
commit
feef3cfa7d
2 changed files with 11 additions and 2 deletions
|
|
@ -655,6 +655,13 @@ class Cache implements ICache {
|
|||
return $this->storage->instanceOfStorage(Encryption::class);
|
||||
}
|
||||
|
||||
protected function shouldEncrypt(string $targetPath): bool {
|
||||
if (!$this->storage->instanceOfStorage(Encryption::class)) {
|
||||
return false;
|
||||
}
|
||||
return $this->storage->shouldEncrypt($targetPath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Move a file or folder in the cache
|
||||
*
|
||||
|
|
@ -1173,7 +1180,9 @@ class Cache implements ICache {
|
|||
$data = $this->cacheEntryToArray($sourceEntry);
|
||||
|
||||
// when moving from an encrypted storage to a non-encrypted storage remove the `encrypted` mark
|
||||
if ($sourceCache instanceof Cache && $sourceCache->hasEncryptionWrapper() && !$this->hasEncryptionWrapper()) {
|
||||
if ($sourceCache instanceof Cache
|
||||
&& $sourceCache->hasEncryptionWrapper()
|
||||
&& !$this->shouldEncrypt($targetPath)) {
|
||||
$data['encrypted'] = 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -884,7 +884,7 @@ class Encryption extends Wrapper {
|
|||
/**
|
||||
* check if the given storage should be encrypted or not
|
||||
*/
|
||||
protected function shouldEncrypt(string $path): bool {
|
||||
public function shouldEncrypt(string $path): bool {
|
||||
$fullPath = $this->getFullPath($path);
|
||||
$mountPointConfig = $this->mount->getOption('encrypt', true);
|
||||
if ($mountPointConfig === false) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue