diff options
author | Julius Härtl <jus@bitgrid.net> | 2019-08-21 21:48:11 +0300 |
---|---|---|
committer | Julius Härtl <jus@bitgrid.net> | 2019-08-27 19:43:25 +0300 |
commit | 33f39aca11c4fd4b3cd3f920512620792b040c48 (patch) | |
tree | 38aa7db9482243ccaaee96d0f2f4ba7958b366de /lib | |
parent | 07cf15f76b9b327cf4e2f2a8624ac78b277e1961 (diff) |
Fix fetching the display name of federated editors
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Controller/WopiController.php | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/lib/Controller/WopiController.php b/lib/Controller/WopiController.php index 86f104fd..701cfc3e 100644 --- a/lib/Controller/WopiController.php +++ b/lib/Controller/WopiController.php @@ -183,28 +183,30 @@ class WopiController extends Controller { } if ($wopi->getRemoteServer() !== '') { - $remoteUserId = $wopi->getGuestDisplayname(); - // TODO: extract from here to reuse - // https://github.com/nextcloud/server/blob/5b604eaeaba7d5ee5dd12a92f37c9e8e7519c9c2/apps/federatedfilesharing/lib/Notifier.phpcd - $cloudID = \OC::$server->getCloudIdManager()->resolveCloudId($remoteUserId); - $response['UserFriendlyName'] = $cloudID->getDisplayId(); - $response['UserExtraInfo']['avatar'] = $this->urlGenerator->linkToRouteAbsolute('core.avatar.getAvatar', ['userId' => explode('@', $remoteUserId)[0], 'size' => 32]); - $addressBookEntries = \OC::$server->getContactsManager()->search($cloudID->getId(), ['CLOUD']); - foreach ($addressBookEntries as $entry) { - if (isset($entry['CLOUD'])) { - foreach ($entry['CLOUD'] as $cloudID) { - if ($cloudID === $cloudID->getId()) { - $response['UserFriendlyName'] = $entry['FN']; - break; - } + $response = $this->setFederationFileInfo($wopi, $response); + } + + return new JSONResponse($response); + } + + private function setFederationFileInfo($wopi, $response) { + $remoteUserId = $wopi->getGuestDisplayname(); + $cloudID = \OC::$server->getCloudIdManager()->resolveCloudId($remoteUserId); + $response['UserFriendlyName'] = $cloudID->getDisplayId(); + $response['UserExtraInfo']['avatar'] = $this->urlGenerator->linkToRouteAbsolute('core.avatar.getAvatar', ['userId' => explode('@', $remoteUserId)[0], 'size' => 32]); + $cleanCloudId = str_replace(['http://', 'https://'], '', $cloudID->getId()); + $addressBookEntries = \OC::$server->getContactsManager()->search($cleanCloudId, ['CLOUD']); + foreach ($addressBookEntries as $entry) { + if (isset($entry['CLOUD'])) { + foreach ($entry['CLOUD'] as $cloudID) { + if ($cloudID === $cleanCloudId) { + $response['UserFriendlyName'] = $entry['FN']; + break; } } } - - } - - return new JSONResponse($response); + return $response; } /** |