mirror of
https://github.com/nextcloud/server.git
synced 2026-04-14 13:38:10 -04:00
show correct display name if we have the user in one of our address books
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
parent
60a3893ca8
commit
8c8a019b7e
1 changed files with 24 additions and 4 deletions
|
|
@ -23,7 +23,6 @@
|
|||
*/
|
||||
namespace OCA\Files_Sharing\Controller;
|
||||
|
||||
use OC\Share20\Exception\ProviderException;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\AppFramework\OCS\OCSBadRequestException;
|
||||
use OCP\AppFramework\OCS\OCSException;
|
||||
|
|
@ -37,7 +36,6 @@ use OCP\IL10N;
|
|||
use OCP\IUserManager;
|
||||
use OCP\IRequest;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUser;
|
||||
use OCP\Files\IRootFolder;
|
||||
use OCP\Lock\LockedException;
|
||||
use OCP\Share\IManager;
|
||||
|
|
@ -187,11 +185,11 @@ class ShareAPIController extends OCSController {
|
|||
|
||||
} else if ($share->getShareType() === \OCP\Share::SHARE_TYPE_REMOTE) {
|
||||
$result['share_with'] = $share->getSharedWith();
|
||||
$result['share_with_displayname'] = $share->getSharedWith();
|
||||
$result['share_with_displayname'] = $this->getDisplayNameFromAddressBook($share->getSharedWith(), 'CLOUD');
|
||||
$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['share_with_displayname'] = $this->getDisplayNameFromAddressBook($share->getSharedWith(), 'EMAIL');
|
||||
$result['token'] = $share->getToken();
|
||||
}
|
||||
|
||||
|
|
@ -200,6 +198,28 @@ class ShareAPIController extends OCSController {
|
|||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if one of the users address books knows the exact property, if
|
||||
* yes we return the full name.
|
||||
*
|
||||
* @param string $query
|
||||
* @param string $property
|
||||
* @return string
|
||||
*/
|
||||
private function getDisplayNameFromAddressBook($query, $property) {
|
||||
// FIXME: If we inject the contacts manager it gets initialized bofore any address books are registered
|
||||
$result = \OC::$server->getContactsManager()->search($query, [$property]);
|
||||
foreach ($result as $r) {
|
||||
foreach($r[$property] as $value) {
|
||||
if ($value === $query) {
|
||||
return $r['FN'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a specific share by id
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in a new issue