diff options
author | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2018-03-16 04:23:46 +0100 |
---|---|---|
committer | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2018-03-16 04:58:00 +0100 |
commit | 2c073dc53d24c82dd4aaf315327d08463f2c7050 (patch) | |
tree | dd55d8e7427ce1bc9736ecdceaae32561657d95c /apps/files_sharing | |
parent | b7e7ae5d6d95af8e84f27f90e78d14bfd6e156b5 (diff) | |
download | nextcloud-server-2c073dc53d24c82dd4aaf315327d08463f2c7050.tar.gz nextcloud-server-2c073dc53d24c82dd4aaf315327d08463f2c7050.zip |
Set "share_with" field to the ID of the circle
When a share is shared with a circle the "share_with" field returned by
the API endpoint was always set to the name of the circle. However, the
name is not enough to identify a circle. The Circles app now provides
the ID of the circle in the "shared with" field of a Share, so this
commit modifies the API endpoint to set the "share_with" field to the ID
of the circle when provided by the Circles app.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'apps/files_sharing')
-rw-r--r-- | apps/files_sharing/lib/Controller/ShareAPIController.php | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php index 1e121d8c868..1390eedf26e 100644 --- a/apps/files_sharing/lib/Controller/ShareAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareAPIController.php @@ -207,8 +207,16 @@ class ShareAPIController extends OCSController { $result['share_with_displayname'] = $this->getDisplayNameFromAddressBook($share->getSharedWith(), 'EMAIL'); $result['token'] = $share->getToken(); } else if ($share->getShareType() === \OCP\Share::SHARE_TYPE_CIRCLE) { - $result['share_with_displayname'] = $share->getSharedWith(); - $result['share_with'] = explode(' ', $share->getSharedWith(), 2)[0]; + // getSharedWith() returns either "name (type, owner)" or + // "name (type, owner) [id]", depending on the Circles app version. + $hasCircleId = (substr($share->getSharedWith(), -1) === ']'); + + $displayNameLength = ($hasCircleId? strrpos($share->getSharedWith(), ' '): strlen($share->getSharedWith())); + $result['share_with_displayname'] = substr($share->getSharedWith(), 0, $displayNameLength); + + $shareWithStart = ($hasCircleId? strrpos($share->getSharedWith(), '[') + 1: 0); + $shareWithLength = ($hasCircleId? -1: strpos($share->getSharedWith(), ' ')); + $result['share_with'] = substr($share->getSharedWith(), $shareWithStart, $shareWithLength); } |