Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2020-01-28 14:27:47 +0300
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>2020-03-10 22:32:05 +0300
commit33b048dd1c144aabab3efccd3e1c167c2328d89d (patch)
treed679ecd793f0e073adde809060ba674973ea549b /apps/files/lib
parent06dd4affeb47208cb35cd102d3354ac7f962603e (diff)
Use contacts name on federated activities
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'apps/files/lib')
-rw-r--r--apps/files/lib/Activity/Provider.php46
1 files changed, 35 insertions, 11 deletions
diff --git a/apps/files/lib/Activity/Provider.php b/apps/files/lib/Activity/Provider.php
index 86f5e71b580..5749473783e 100644
--- a/apps/files/lib/Activity/Provider.php
+++ b/apps/files/lib/Activity/Provider.php
@@ -28,6 +28,7 @@ use OCP\Activity\IEvent;
use OCP\Activity\IEventMerger;
use OCP\Activity\IManager;
use OCP\Activity\IProvider;
+use OCP\Contacts\IManager as IContactsManager;
use OCP\Files\Folder;
use OCP\Files\InvalidPathException;
use OCP\Files\IRootFolder;
@@ -64,25 +65,27 @@ class Provider implements IProvider {
/** @var IEventMerger */
protected $eventMerger;
+ /** @var IContactsManager */
+ protected $contactsManager;
+
/** @var string[] cached displayNames - key is the UID and value the displayname */
protected $displayNames = [];
protected $fileIsEncrypted = false;
- /**
- * @param IFactory $languageFactory
- * @param IURLGenerator $url
- * @param IManager $activityManager
- * @param IUserManager $userManager
- * @param IRootFolder $rootFolder
- * @param IEventMerger $eventMerger
- */
- public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager, IRootFolder $rootFolder, IEventMerger $eventMerger) {
+ public function __construct(IFactory $languageFactory,
+ IURLGenerator $url,
+ IManager $activityManager,
+ IUserManager $userManager,
+ IRootFolder $rootFolder,
+ IContactsManager $contactsManager,
+ IEventMerger $eventMerger) {
$this->languageFactory = $languageFactory;
$this->url = $url;
$this->activityManager = $activityManager;
$this->userManager = $userManager;
$this->rootFolder = $rootFolder;
+ $this->contactsManager = $contactsManager;
$this->eventMerger = $eventMerger;
}
@@ -495,8 +498,29 @@ class Provider implements IProvider {
$user = $this->userManager->get($uid);
if ($user instanceof IUser) {
return $user->getDisplayName();
- } else {
- return $uid;
}
+
+ $addressBookContacts = $this->contactsManager->search($uid, ['CLOUD']);
+ foreach ($addressBookContacts as $contact) {
+ if (isset($contact['isLocalSystemBook'])) {
+ continue;
+ }
+
+ if (isset($contact['CLOUD'])) {
+ $cloudIds = $contact['CLOUD'];
+ if (is_string($cloudIds)) {
+ $cloudIds = [$cloudIds];
+ }
+
+ $lowerSearch = strtolower($uid);
+ foreach ($cloudIds as $cloudId) {
+ if (strtolower($cloudId) === $lowerSearch) {
+ return $contact['FN'] . " ($cloudId)";
+ }
+ }
+ }
+ }
+
+ return $uid;
}
}