mirror of
https://github.com/nextcloud/server.git
synced 2026-03-04 18:28:08 +01: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:
committed by
Andy Scherzinger
parent
419711cd85
commit
feef3cfa7d
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user