feat: Check download attribute when fetching previews

Signed-off-by: Louis Chemineau <louis@chmn.me>
This commit is contained in:
Louis Chemineau 2024-04-17 17:15:26 +02:00
parent 1b4e3b5a2d
commit a6c2e30f58
No known key found for this signature in database
2 changed files with 25 additions and 0 deletions

View File

@ -25,6 +25,7 @@ declare(strict_types=1);
namespace OCA\Photos\Controller;
use OCA\Files_Sharing\SharedStorage;
use OCA\Photos\Album\AlbumMapper;
use OCA\Photos\AppInfo\Application;
use OCP\AppFramework\Controller;
@ -90,6 +91,21 @@ class PreviewController extends Controller {
}
$nodes = $this->userFolder->getById($fileId);
$nodes = array_filter(
$nodes,
function ($node) {
$storage = $node->getStorage();
if (!$storage->instanceOfStorage(SharedStorage::class)) {
return true;
}
/** @var SharedStorage $storage */
$share = $storage->getShare();
$attributes = $share->getAttributes();
return $attributes === null || $attributes->getAttribute('permissions', 'download') !== false;
},
);
/** @var \OCA\Photos\Album\AlbumInfo[] */
$checkedAlbums = [];

View File

@ -6,11 +6,20 @@
<code>\OCA\GroupFolders\Mount\GroupFolderStorage</code>
</UndefinedClass>
</file>
<file src="lib/Controller/PreviewController.php">
<UndefinedDocblockClass occurrences="4">
<code>OCA\Files_Sharing\SharedStorage</code>
</UndefinedDocblockClass>
<UndefinedClass occurrences="1">
<code>SharedStorage</code>
</UndefinedClass>
</file>
<file src="lib/Controller/PageController.php">
<InvalidArgument occurrences="1">
<code>new SearchQuery(new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'systemtag',
$tag-&gt;getName()), 0, 0, [], $user)</code>
</InvalidArgument>
<UndefinedClass occurrences="12">
<code>$e</code>
<code>LoadSidebar</code>