summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/workflowengine/lib/Entity/File.php16
-rw-r--r--apps/workflowengine/tests/ManagerTest.php2
2 files changed, 13 insertions, 5 deletions
diff --git a/apps/workflowengine/lib/Entity/File.php b/apps/workflowengine/lib/Entity/File.php
index b6084266c5d..7caaaf0e225 100644
--- a/apps/workflowengine/lib/Entity/File.php
+++ b/apps/workflowengine/lib/Entity/File.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
*
* @author Arthur Schiwon <blizzz@arthur-schiwon.de>
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
+ * @author Jonas Meurer <jonas@freesources.org>
*
* @license GNU AGPL version 3 or any later version
*
@@ -27,6 +28,7 @@ declare(strict_types=1);
namespace OCA\WorkflowEngine\Entity;
use OC\Files\Config\UserMountCache;
+use OC\Files\Mount\Manager as MountManager;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\GenericEvent;
use OCP\Files\InvalidPathException;
@@ -77,6 +79,8 @@ class File implements IEntity, IDisplayText, IUrl, IIcon, IContextPortation {
private $userManager;
/** @var UserMountCache */
private $userMountCache;
+ /** @var MountManager */
+ private $mountManager;
public function __construct(
IL10N $l10n,
@@ -86,7 +90,8 @@ class File implements IEntity, IDisplayText, IUrl, IIcon, IContextPortation {
IUserSession $userSession,
ISystemTagManager $tagManager,
IUserManager $userManager,
- UserMountCache $userMountCache
+ UserMountCache $userMountCache,
+ MountManager $mountManager
) {
$this->l10n = $l10n;
$this->urlGenerator = $urlGenerator;
@@ -96,6 +101,7 @@ class File implements IEntity, IDisplayText, IUrl, IIcon, IContextPortation {
$this->tagManager = $tagManager;
$this->userManager = $userManager;
$this->userMountCache = $userMountCache;
+ $this->mountManager = $mountManager;
}
public function getName(): string {
@@ -148,10 +154,10 @@ class File implements IEntity, IDisplayText, IUrl, IIcon, IContextPortation {
$fileId = $node->getId();
}
- $mounts = $this->userMountCache->getMountsForFileId($fileId, $uid);
- foreach ($mounts as $mount) {
- $userFolder = $this->root->getUserFolder($uid);
- if (!empty($userFolder->getById($fileId))) {
+ $mountInfos = $this->userMountCache->getMountsForFileId($fileId, $uid);
+ foreach ($mountInfos as $mountInfo) {
+ $mount = $this->mountManager->getMountFromMountInfo($mountInfo);
+ if ($mount && $mount->getStorage() && !empty($mount->getStorage()->getCache()->get($fileId))) {
return true;
}
}
diff --git a/apps/workflowengine/tests/ManagerTest.php b/apps/workflowengine/tests/ManagerTest.php
index 5f92c603e14..b708d034df5 100644
--- a/apps/workflowengine/tests/ManagerTest.php
+++ b/apps/workflowengine/tests/ManagerTest.php
@@ -27,6 +27,7 @@
namespace OCA\WorkflowEngine\Tests;
use OC\Files\Config\UserMountCache;
+use OC\Files\Mount\Manager as MountManager;
use OC\L10N\L10N;
use OCA\WorkflowEngine\Entity\File;
use OCA\WorkflowEngine\Helper\ScopeContext;
@@ -413,6 +414,7 @@ class ManagerTest extends TestCase {
$this->createMock(ISystemTagManager::class),
$this->createMock(IUserManager::class),
$this->createMock(UserMountCache::class),
+ $this->createMock(MountManager::class),
])
->setMethodsExcept(['getEvents'])
->getMock();