]> source.dussan.org Git - nextcloud-server.git/commitdiff
Switch to DisplayNameCache for CalDAV
authorAnna Larch <anna@nextcloud.com>
Thu, 18 Aug 2022 11:44:46 +0000 (13:44 +0200)
committerAnna Larch <anna@nextcloud.com>
Thu, 3 Nov 2022 09:26:34 +0000 (10:26 +0100)
Signed-off-by: Anna Larch <anna@nextcloud.com>
apps/dav/lib/CalDAV/Activity/Provider/Base.php
apps/dav/lib/CalDAV/CalDavBackend.php
apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php

index 48ed7b8b107282324d95be265832c3e303c7f538..672129a83112e75a3228993901bf5b7bb8a3f277 100644 (file)
@@ -38,9 +38,6 @@ abstract class Base implements IProvider {
        /** @var IUserManager */
        protected $userManager;
 
-       /** @var string[]  */
-       protected $userDisplayNames = [];
-
        /** @var IGroupManager */
        protected $groupManager;
 
index b00a4f9d6ed737458c533c3db5b9979e1ebb9ada..a894b65d756045cbff6f3a54f27dac90a4fbccd0 100644 (file)
@@ -417,7 +417,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
 
                        [, $name] = Uri\split($row['principaluri']);
                        $uri = $row['uri'] . '_shared_by_' . $name;
-                       $row['displayname'] = $row['displayname'] . ' (' . $this->getUserDisplayName($name) . ')';
+                       $row['displayname'] = $row['displayname'] . ' (' . ($this->userManager->getDisplayName($name) ?? ($name ?? '')) . ')';
                        $components = [];
                        if ($row['components']) {
                                $components = explode(',',$row['components']);
@@ -493,25 +493,6 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
                return array_values($calendars);
        }
 
-
-       /**
-        * @param $uid
-        * @return string
-        */
-       private function getUserDisplayName($uid) {
-               if (!isset($this->userDisplayNames[$uid])) {
-                       $user = $this->userManager->get($uid);
-
-                       if ($user instanceof IUser) {
-                               $this->userDisplayNames[$uid] = $user->getDisplayName();
-                       } else {
-                               $this->userDisplayNames[$uid] = $uid;
-                       }
-               }
-
-               return $this->userDisplayNames[$uid];
-       }
-
        /**
         * @return array
         */
index 2c7b06a4396313e9f5d0b6adee68a5706e647c6b..91610682ef2bb4d8113caa07e203e9ed685b24aa 100644 (file)
@@ -178,12 +178,7 @@ class IMipPlugin extends SabreIMipPlugin {
                $recipientName = $iTipMessage->recipientName ?: null;
 
                if ($senderName === null || empty(trim($senderName))) {
-                       $user = $this->userManager->get($this->userId);
-                       if ($user) {
-                               // getDisplayName automatically uses the uid
-                               // if no display-name is set
-                               $senderName = $user->getDisplayName();
-                       }
+                       $sender = $this->userManager->getDisplayName($this->userId) ?? $this->userId;
                }
 
                /** @var VEvent $vevent */
@@ -225,7 +220,7 @@ class IMipPlugin extends SabreIMipPlugin {
                ];
 
                $fromEMail = Util::getDefaultEmailAddress('invitations-noreply');
-               $fromName = $l10n->t('%1$s via %2$s', [$senderName, $this->defaults->getName()]);
+               $fromName = $l10n->t('%1$s via %2$s', [$senderName ?? $this->userId, $this->defaults->getName()]);
 
                $message = $this->mailer->createMessage()
                        ->setFrom([$fromEMail => $fromName])
index 0d8076f7aa4557f24d819851a8d82bc3ce05e0a7..0b64704a87e0916180b6442ddfcd7cf8f906c21b 100644 (file)
@@ -183,13 +183,10 @@ class IMipPluginTest extends TestCase {
                $message = $this->_testMessage();
                $message->senderName = null;
 
-               $user = $this->createMock(IUser::class);
-               $user->method('getDisplayName')->willReturn('Mr. Wizard');
-
                $this->userManager->expects($this->once())
-                       ->method('get')
+                       ->method('getDisplayName')
                        ->with('user123')
-                       ->willReturn($user);
+                       ->willReturn('Mr. Wizard');
 
                $this->_expectSend();
                $this->plugin->schedule($message);