diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php index c0c21bdb16cbe96f9729d3d8520ef212f523c869..46697910bbc9272656c3fb47d75a2a69b2f3dc88 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -32,6 +32,7 @@ use OCP\IUserManager; use OCP\Mail\IMailer; use OCP\Security\ISecureRandom; use OC\Share20\Share; +use OCP\Share\Exceptions\ShareNotFound; use OCP\Share\IShare; use OCP\Share\IShareProvider; diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 899bd4ebfa1e46a90d8a71c3851004d4e40dcbf6..0c49d0b6490a3f078939da1947c150ab57eb38ce 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -1049,6 +1049,16 @@ class Manager implements IManager { // If it is not a link share try to fetch a federated share by token if ($share === null) { $provider = $this->factory->getProviderForType(\OCP\Share::SHARE_TYPE_REMOTE); + try { + $share = $provider->getShareByToken($token); + } catch (ShareNotFound $e) { + $share = null; + } + } + + // If it is not a link share try to fetch a federated share by token + if ($share === null && $this->shareProviderExists(\OCP\Share::SHARE_TYPE_EMAIL)) { + $provider = $this->factory->getProviderForType(\OCP\Share::SHARE_TYPE_EMAIL); $share = $provider->getShareByToken($token); }