diff --git a/lib/ShareByCircleProvider.php b/lib/ShareByCircleProvider.php index 00b4f7f22..844fdc7b7 100644 --- a/lib/ShareByCircleProvider.php +++ b/lib/ShareByCircleProvider.php @@ -34,9 +34,7 @@ namespace OCA\Circles; -use OCA\Circles\Tools\Traits\TNCLogger; -use OCA\Circles\Tools\Traits\TArrayTools; -use OCA\Circles\Tools\Traits\TStringTools; +use Exception; use OC; use OCA\Circles\Exceptions\CircleNotFoundException; use OCA\Circles\Exceptions\ContactAddressBookNotFoundException; @@ -68,6 +66,9 @@ use OCA\Circles\Service\FederatedEventService; use OCA\Circles\Service\FederatedUserService; use OCA\Circles\Service\ShareWrapperService; +use OCA\Circles\Tools\Traits\TArrayTools; +use OCA\Circles\Tools\Traits\TNCLogger; +use OCA\Circles\Tools\Traits\TStringTools; use OCP\Files\Folder; use OCP\Files\InvalidPathException; use OCP\Files\IRootFolder; @@ -391,6 +392,7 @@ public function move(IShare $share, $recipient): IShare { * @param Folder $node * @param bool $reshares * @param bool $shallow Whether the method should stop at the first level, or look into sub-folders. + * * @return array * @throws ContactAddressBookNotFoundException * @throws ContactFormatException @@ -454,10 +456,19 @@ public function getSharesBy($userId, $shareType, $node, $reshares, $limit, $offs return []; } - $federatedUser = $this->federatedUserService->getLocalFederatedUser($userId); + $nodeId = (!is_null($node)) ? $node->getId() : 0; + + try { + $federatedUser = $this->federatedUserService->getLocalFederatedUser($userId, false); + } catch (Exception $e) { + $this->e($e, ['userId' => $userId, 'shareType' => $shareType, 'nodeId' => $nodeId]); + + return []; + } + $wrappedShares = $this->shareWrapperService->getSharesBy( $federatedUser, - (!is_null($node)) ? $node->getId() : 0, + $nodeId, $reshares, $limit, $offset,