@@ -450,11 +450,11 @@ class ShareAPIController extends OCSController { | |||
} | |||
$share->setSharedWith($shareWith); | |||
} else if ($shareType === \OCP\Share::SHARE_TYPE_CIRCLE) { | |||
if (!\OCP\App::isEnabled('circles')) { | |||
if (!\OC::$server->getAppManager()->isEnabledForUser('circles') || !class_exists('\OCA\Circles\ShareByCircleProvider')) { | |||
throw new OCSNotFoundException($this->l->t('You cannot share to a Circle if the app is not enabled')); | |||
} | |||
$circle = \OCA\Circles\Api\Circles::detailsCircle($shareWith); | |||
$circle = \OCA\Circles\Api\v1\Circles::detailsCircle($shareWith); | |||
// Valid circle is required to share | |||
if ($circle === null) { |
@@ -472,7 +472,7 @@ class ShareesAPIController extends OCSController { | |||
$shareTypes[] = Share::SHARE_TYPE_EMAIL; | |||
} | |||
if (\OCP\App::isEnabled('circles')) { | |||
if (\OC::$server->getAppManager()->isEnabledForUser('circles') && class_exists('\OCA\Circles\ShareByCircleProvider')) { | |||
$shareTypes[] = Share::SHARE_TYPE_CIRCLE; | |||
} | |||
@@ -193,7 +193,7 @@ class Manager implements IManager { | |||
throw new \InvalidArgumentException('SharedWith should not be empty'); | |||
} | |||
} else if ($share->getShareType() === \OCP\Share::SHARE_TYPE_CIRCLE) { | |||
$circle = \OCA\Circles\Api\Circles::detailsCircle($share->getSharedWith()); | |||
$circle = \OCA\Circles\Api\v1\Circles::detailsCircle($share->getSharedWith()); | |||
if ($circle === null) { | |||
throw new \InvalidArgumentException('SharedWith is not a valid circle'); | |||
} |
@@ -51,9 +51,10 @@ class ProviderFactory implements IProviderFactory { | |||
private $federatedProvider = null; | |||
/** @var ShareByMailProvider */ | |||
private $shareByMailProvider; | |||
/** @var \OCA\Circles\ShareByCircleProvider; | |||
* ShareByCircleProvider */ | |||
private $shareByCircleProvider; | |||
/** @var \OCA\Circles\ShareByCircleProvider */ | |||
private $shareByCircleProvider = null; | |||
/** @var bool */ | |||
private $circlesAreNotAvailable = false; | |||
/** | |||
* IProviderFactory constructor. | |||
@@ -179,11 +180,16 @@ class ProviderFactory implements IProviderFactory { | |||
*/ | |||
protected function getShareByCircleProvider() { | |||
$appManager = $this->serverContainer->getAppManager(); | |||
if (!$appManager->isEnabledForUser('circles')) { | |||
if ($this->circlesAreNotAvailable) { | |||
return null; | |||
} | |||
if (!$this->serverContainer->getAppManager()->isEnabledForUser('circles') || | |||
!class_exists('\OCA\Circles\ShareByCircleProvider') | |||
) { | |||
$this->circlesAreNotAvailable = true; | |||
return null; | |||
} | |||
if ($this->shareByCircleProvider === null) { | |||