From 1f1b2a32cbc6f7d3416368ab835bd3f892ea8c71 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 21 Apr 2022 17:33:18 +0200 Subject: cache the share owner name for formating cache entries Signed-off-by: Robin Appelman --- apps/files_sharing/lib/Cache.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'apps/files_sharing/lib') 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; -- cgit v1.2.3