Merge pull request #1345 from nextcloud/small-encryption-improvement-stable10
[stable10] skip shared files, if files get decrypted only for a specific user
This commit is contained in:
commit
c40e598d55
|
@ -210,6 +210,10 @@ class DecryptAll {
|
||||||
while ($root = array_pop($directories)) {
|
while ($root = array_pop($directories)) {
|
||||||
$content = $this->rootView->getDirectoryContent($root);
|
$content = $this->rootView->getDirectoryContent($root);
|
||||||
foreach ($content as $file) {
|
foreach ($content as $file) {
|
||||||
|
// only decrypt files owned by the user
|
||||||
|
if($file->getStorage()->instanceOfStorage('OC\Files\Storage\Shared')) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$path = $root . '/' . $file['name'];
|
$path = $root . '/' . $file['name'];
|
||||||
if ($this->rootView->is_dir($path)) {
|
if ($this->rootView->is_dir($path)) {
|
||||||
$directories[] = $path;
|
$directories[] = $path;
|
||||||
|
|
|
@ -251,18 +251,29 @@ class DecryptAllTest extends TestCase {
|
||||||
->setMethods(['decryptFile'])
|
->setMethods(['decryptFile'])
|
||||||
->getMock();
|
->getMock();
|
||||||
|
|
||||||
|
$storage = $this->getMockBuilder('OCP\Files\Storage')
|
||||||
|
->disableOriginalConstructor()->getMock();
|
||||||
|
|
||||||
|
|
||||||
|
$sharedStorage = $this->getMockBuilder('OCP\Files\Storage')
|
||||||
|
->disableOriginalConstructor()->getMock();
|
||||||
|
|
||||||
|
$sharedStorage->expects($this->once())->method('instanceOfStorage')
|
||||||
|
->with('OC\Files\Storage\Shared')->willReturn(true);
|
||||||
|
|
||||||
$this->view->expects($this->at(0))->method('getDirectoryContent')
|
$this->view->expects($this->at(0))->method('getDirectoryContent')
|
||||||
->with('/user1/files')->willReturn(
|
->with('/user1/files')->willReturn(
|
||||||
[
|
[
|
||||||
new FileInfo('path', null, 'intPath', ['name' => 'foo', 'type'=>'dir'], null),
|
new FileInfo('path', $storage, 'intPath', ['name' => 'foo', 'type'=>'dir'], null),
|
||||||
new FileInfo('path', null, 'intPath', ['name' => 'bar', 'type'=>'file', 'encrypted'=>true], null)
|
new FileInfo('path', $storage, 'intPath', ['name' => 'bar', 'type'=>'file', 'encrypted'=>true], null),
|
||||||
|
new FileInfo('path', $sharedStorage, 'intPath', ['name' => 'shared', 'type'=>'file', 'encrypted'=>true], null),
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->view->expects($this->at(3))->method('getDirectoryContent')
|
$this->view->expects($this->at(3))->method('getDirectoryContent')
|
||||||
->with('/user1/files/foo')->willReturn(
|
->with('/user1/files/foo')->willReturn(
|
||||||
[
|
[
|
||||||
new FileInfo('path', null, 'intPath', ['name' => 'subfile', 'type'=>'file', 'encrypted'=>true], null)
|
new FileInfo('path', $storage, 'intPath', ['name' => 'subfile', 'type'=>'file', 'encrypted'=>true], null)
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue