From: Robin Appelman Date: Thu, 21 Apr 2022 15:33:18 +0000 (+0200) Subject: cache the share owner name for formating cache entries X-Git-Tag: v25.0.0beta1~540^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1f1b2a32cbc6f7d3416368ab835bd3f892ea8c71;p=nextcloud-server.git cache the share owner name for formating cache entries Signed-off-by: Robin Appelman --- diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php index 8729426221b..c49bebaef62 100644 --- a/apps/files_sharing/lib/Cache.php +++ b/apps/files_sharing/lib/Cache.php @@ -38,6 +38,7 @@ use OCP\Files\Search\ISearchBinaryOperator; use OCP\Files\Search\ISearchComparison; use OCP\Files\Search\ISearchOperator; use OCP\Files\StorageNotAvailableException; +use OCP\ICacheFactory; use OCP\IUserManager; /** @@ -172,12 +173,21 @@ class Cache extends CacheJail { private function getOwnerDisplayName() { if (!$this->ownerDisplayName) { + /** @var ICacheFactory $cacheFactory */ + $cacheFactory = \OC::$server->get(ICacheFactory::class); + $memcache = $cacheFactory->createLocal('share_owner_name'); $uid = $this->storage->getOwner(''); - $user = $this->userManager->get($uid); - if ($user) { - $this->ownerDisplayName = $user->getDisplayName(); + $cached = $memcache->get($uid); + if ($cached) { + $this->ownerDisplayName = $cached; } else { - $this->ownerDisplayName = $uid; + $user = $this->userManager->get($uid); + if ($user) { + $this->ownerDisplayName = $user->getDisplayName(); + } else { + $this->ownerDisplayName = $uid; + } + $memcache->set($uid, $this->ownerDisplayName, 60 * 60); } } return $this->ownerDisplayName;