diff options
author | Bjoern Schiessle <bjoern@schiessle.org> | 2016-07-29 15:38:31 +0200 |
---|---|---|
committer | Bjoern Schiessle <bjoern@schiessle.org> | 2016-11-01 19:51:11 +0100 |
commit | a17c6a485d91bdc1c322a454c66d9d017a5f8ca5 (patch) | |
tree | 96b90220f17bfd7143b10051ab38c4f6e071d56d /apps/files_sharing | |
parent | 0a6f02801f333c17ca6455906bc816020883477d (diff) | |
download | nextcloud-server-a17c6a485d91bdc1c322a454c66d9d017a5f8ca5.tar.gz nextcloud-server-a17c6a485d91bdc1c322a454c66d9d017a5f8ca5.zip |
add share by mail share provider
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
Diffstat (limited to 'apps/files_sharing')
-rw-r--r-- | apps/files_sharing/lib/Controller/ShareAPIController.php | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php index ad9ac6c0851..ef22b473189 100644 --- a/apps/files_sharing/lib/Controller/ShareAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareAPIController.php @@ -188,6 +188,10 @@ class ShareAPIController extends OCSController { $result['share_with'] = $share->getSharedWith(); $result['share_with_displayname'] = $share->getSharedWith(); $result['token'] = $share->getToken(); + } else if ($share->getShareType() === \OCP\Share::SHARE_TYPE_EMAIL) { + $result['share_with'] = $share->getSharedWith(); + $result['share_with_displayname'] = $share->getSharedWith(); + $result['token'] = $share->getToken(); } $result['mail_send'] = $share->getMailSend() ? 1 : 0; @@ -400,6 +404,9 @@ class ShareAPIController extends OCSController { $share->setSharedWith($shareWith); $share->setPermissions($permissions); + } else if ($shareType === \OCP\Share::SHARE_TYPE_EMAIL) { + $share->setPermissions(\OCP\Constants::PERMISSION_READ); + $share->setSharedWith($shareWith); } else { throw new OCSBadRequestException($this->l->t('Unknown share type')); } @@ -466,6 +473,7 @@ class ShareAPIController extends OCSController { $shares = array_merge($shares, $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_USER, $node, false, -1, 0)); $shares = array_merge($shares, $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_GROUP, $node, false, -1, 0)); $shares = array_merge($shares, $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_LINK, $node, false, -1, 0)); + $shares = array_merge($shares, $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_EMAIL, $node, false, -1, 0)); if ($this->shareManager->outgoingServer2ServerSharesAllowed()) { $shares = array_merge($shares, $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_REMOTE, $node, false, -1, 0)); } @@ -541,7 +549,8 @@ class ShareAPIController extends OCSController { $userShares = $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_USER, $path, $reshares, -1, 0); $groupShares = $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_GROUP, $path, $reshares, -1, 0); $linkShares = $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_LINK, $path, $reshares, -1, 0); - $shares = array_merge($userShares, $groupShares, $linkShares); + $mailShares = $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_EMAIL, $path, $reshares, -1, 0); + $shares = array_merge($userShares, $groupShares, $linkShares, $mailShares); if ($this->shareManager->outgoingServer2ServerSharesAllowed()) { $federatedShares = $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_REMOTE, $path, $reshares, -1, 0); @@ -774,6 +783,14 @@ class ShareAPIController extends OCSController { // First check if it is an internal share. try { $share = $this->shareManager->getShareById('ocinternal:' . $id); + return $share; + } catch (ShareNotFound $e) { + // Do nothing, just try the other share type + } + + try { + $share = $this->shareManager->getShareById('ocMailShare:' . $id); + return $share; } catch (ShareNotFound $e) { if (!$this->shareManager->outgoingServer2ServerSharesAllowed()) { throw new ShareNotFound(); |