|
|
|
|
@ -33,10 +33,10 @@ use OC\Files\Filesystem;
|
|
|
|
|
use OCA\FederatedFileSharing\AddressHandler;
|
|
|
|
|
use OCA\FederatedFileSharing\FederatedShareProvider;
|
|
|
|
|
use OCA\Files_Sharing\Activity\Providers\RemoteShares;
|
|
|
|
|
use OCA\Files_Sharing\External\Manager;
|
|
|
|
|
use OCP\Activity\IManager as IActivityManager;
|
|
|
|
|
use OCP\App\IAppManager;
|
|
|
|
|
use OCP\Constants;
|
|
|
|
|
use OCP\EventDispatcher\IEventDispatcher;
|
|
|
|
|
use OCP\Federation\Exceptions\ActionNotSupportedException;
|
|
|
|
|
use OCP\Federation\Exceptions\AuthenticationFailedException;
|
|
|
|
|
use OCP\Federation\Exceptions\BadRequestException;
|
|
|
|
|
@ -59,7 +59,6 @@ use OCP\Share\Exceptions\ShareNotFound;
|
|
|
|
|
use OCP\Share\IManager;
|
|
|
|
|
use OCP\Share\IShare;
|
|
|
|
|
use OCP\Util;
|
|
|
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
|
|
|
|
|
|
class CloudFederationProviderFiles implements ICloudFederationProvider {
|
|
|
|
|
|
|
|
|
|
@ -108,6 +107,9 @@ class CloudFederationProviderFiles implements ICloudFederationProvider {
|
|
|
|
|
/** @var IConfig */
|
|
|
|
|
private $config;
|
|
|
|
|
|
|
|
|
|
/** @var Manager */
|
|
|
|
|
private $externalShareManager;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* CloudFederationProvider constructor.
|
|
|
|
|
*
|
|
|
|
|
@ -125,22 +127,26 @@ class CloudFederationProviderFiles implements ICloudFederationProvider {
|
|
|
|
|
* @param ICloudFederationProviderManager $cloudFederationProviderManager
|
|
|
|
|
* @param IDBConnection $connection
|
|
|
|
|
* @param IGroupManager $groupManager
|
|
|
|
|
* @param IConfig $config
|
|
|
|
|
* @param Manager $externalShareManager
|
|
|
|
|
*/
|
|
|
|
|
public function __construct(IAppManager $appManager,
|
|
|
|
|
FederatedShareProvider $federatedShareProvider,
|
|
|
|
|
AddressHandler $addressHandler,
|
|
|
|
|
ILogger $logger,
|
|
|
|
|
IUserManager $userManager,
|
|
|
|
|
IManager $shareManager,
|
|
|
|
|
ICloudIdManager $cloudIdManager,
|
|
|
|
|
IActivityManager $activityManager,
|
|
|
|
|
INotificationManager $notificationManager,
|
|
|
|
|
IURLGenerator $urlGenerator,
|
|
|
|
|
ICloudFederationFactory $cloudFederationFactory,
|
|
|
|
|
ICloudFederationProviderManager $cloudFederationProviderManager,
|
|
|
|
|
IDBConnection $connection,
|
|
|
|
|
IGroupManager $groupManager,
|
|
|
|
|
IConfig $config
|
|
|
|
|
public function __construct(
|
|
|
|
|
IAppManager $appManager,
|
|
|
|
|
FederatedShareProvider $federatedShareProvider,
|
|
|
|
|
AddressHandler $addressHandler,
|
|
|
|
|
ILogger $logger,
|
|
|
|
|
IUserManager $userManager,
|
|
|
|
|
IManager $shareManager,
|
|
|
|
|
ICloudIdManager $cloudIdManager,
|
|
|
|
|
IActivityManager $activityManager,
|
|
|
|
|
INotificationManager $notificationManager,
|
|
|
|
|
IURLGenerator $urlGenerator,
|
|
|
|
|
ICloudFederationFactory $cloudFederationFactory,
|
|
|
|
|
ICloudFederationProviderManager $cloudFederationProviderManager,
|
|
|
|
|
IDBConnection $connection,
|
|
|
|
|
IGroupManager $groupManager,
|
|
|
|
|
IConfig $config,
|
|
|
|
|
Manager $externalShareManager
|
|
|
|
|
) {
|
|
|
|
|
$this->appManager = $appManager;
|
|
|
|
|
$this->federatedShareProvider = $federatedShareProvider;
|
|
|
|
|
@ -157,6 +163,7 @@ class CloudFederationProviderFiles implements ICloudFederationProvider {
|
|
|
|
|
$this->connection = $connection;
|
|
|
|
|
$this->groupManager = $groupManager;
|
|
|
|
|
$this->config = $config;
|
|
|
|
|
$this->externalShareManager = $externalShareManager;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -239,24 +246,8 @@ class CloudFederationProviderFiles implements ICloudFederationProvider {
|
|
|
|
|
throw new ProviderCouldNotAddShareException('Group does not exists', '',Http::STATUS_BAD_REQUEST);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$externalManager = new \OCA\Files_Sharing\External\Manager(
|
|
|
|
|
\OC::$server->getDatabaseConnection(),
|
|
|
|
|
Filesystem::getMountManager(),
|
|
|
|
|
Filesystem::getLoader(),
|
|
|
|
|
\OC::$server->getHTTPClientService(),
|
|
|
|
|
\OC::$server->getNotificationManager(),
|
|
|
|
|
\OC::$server->query(\OCP\OCS\IDiscoveryService::class),
|
|
|
|
|
\OC::$server->getCloudFederationProviderManager(),
|
|
|
|
|
\OC::$server->getCloudFederationFactory(),
|
|
|
|
|
\OC::$server->getGroupManager(),
|
|
|
|
|
\OC::$server->getUserManager(),
|
|
|
|
|
$shareWith,
|
|
|
|
|
\OC::$server->query(IEventDispatcher::class),
|
|
|
|
|
\OC::$server->get(LoggerInterface::class)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
$externalManager->addShare($remote, $token, '', $name, $owner, $shareType,false, $shareWith, $remoteId);
|
|
|
|
|
$this->externalShareManager->addShare($remote, $token, '', $name, $owner, $shareType,false, $shareWith, $remoteId);
|
|
|
|
|
$shareId = \OC::$server->getDatabaseConnection()->lastInsertId('*PREFIX*share_external');
|
|
|
|
|
|
|
|
|
|
if ($shareType === IShare::TYPE_USER) {
|
|
|
|
|
|