diff options
Diffstat (limited to 'apps/workflowengine/lib/Entity/File.php')
-rw-r--r-- | apps/workflowengine/lib/Entity/File.php | 16 |
1 files changed, 11 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; } } |