22
22
namespace OCA \GroupFolders \Trash ;
23
23
24
24
use OC \Encryption \Exceptions \DecryptionFailedException ;
25
+ use OC \Files \ObjectStore \ObjectStoreStorage ;
25
26
use OC \Files \Storage \Wrapper \Encryption ;
26
27
use OC \Files \Storage \Wrapper \Jail ;
27
28
use OCA \Files_Trashbin \Expiration ;
@@ -299,9 +300,11 @@ private function moveFromEncryptedStorage(IStorage $sourceStorage, IStorage $tar
299
300
$ sourceStorage = $ sourceStorage ->getWrapperStorage ();
300
301
}
301
302
303
+ /** @psalm-suppress TooManyArguments */
302
304
$ result = $ targetStorage ->copyFromStorage ($ sourceStorage , $ sourceInternalPath , $ targetInternalPath , true );
303
305
if ($ result ) {
304
- if ($ sourceStorage ->instanceOfStorage (ObjectStoreStorage::class)) {
306
+ // hacky workaround to make sure we don't rely on a newer minor version
307
+ if ($ sourceStorage ->instanceOfStorage (ObjectStoreStorage::class) && is_callable ([$ sourceStorage , 'setPreserveCacheOnDelete ' ])) {
305
308
/** @var ObjectStoreStorage $sourceStorage */
306
309
$ sourceStorage ->setPreserveCacheOnDelete (true );
307
310
}
@@ -312,7 +315,7 @@ private function moveFromEncryptedStorage(IStorage $sourceStorage, IStorage $tar
312
315
$ result = $ sourceStorage ->unlink ($ sourceInternalPath );
313
316
}
314
317
} finally {
315
- if ($ sourceStorage ->instanceOfStorage (ObjectStoreStorage::class)) {
318
+ if ($ sourceStorage ->instanceOfStorage (ObjectStoreStorage::class) && is_callable ([ $ sourceStorage , ' setPreserveCacheOnDelete ' ]) ) {
316
319
/** @var ObjectStoreStorage $sourceStorage */
317
320
$ sourceStorage ->setPreserveCacheOnDelete (false );
318
321
}
@@ -345,6 +348,7 @@ private function getNodeForTrashItem(IUser $user, ITrashItem $trashItem): ?Node
345
348
$ folders = $ this ->folderManager ->getFoldersForUser ($ user );
346
349
foreach ($ folders as $ groupFolder ) {
347
350
if ($ groupFolder ['folder_id ' ] === $ folderId ) {
351
+ /** @var Folder $trashRoot */
348
352
$ trashRoot = $ this ->rootFolder ->get ('/ ' . $ user ->getUID () . '/files_trashbin/groupfolders/ ' . $ folderId );
349
353
try {
350
354
$ node = $ trashRoot ->get ($ path );
@@ -411,6 +415,8 @@ private function getTrashForFolders(IUser $user, array $folders): array {
411
415
// ensure the trash folder exists
412
416
$ this ->getTrashFolder ($ folderId );
413
417
418
+
419
+ /** @var Folder $trashFolder */
414
420
$ trashFolder = $ this ->rootFolder ->get ('/ ' . $ user ->getUID () . '/files_trashbin/groupfolders/ ' . $ folderId );
415
421
$ content = $ trashFolder ->getDirectoryListing ();
416
422
$ this ->aclManagerFactory ->getACLManager ($ user )->preloadRulesForFolder ($ trashFolder ->getPath ());
0 commit comments