diff options
author | Robin Appelman <robin@icewind.nl> | 2022-04-21 17:33:18 +0200 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2022-04-21 17:33:18 +0200 |
commit | 1f1b2a32cbc6f7d3416368ab835bd3f892ea8c71 (patch) | |
tree | bffd4326d1b703176c616a60da71249724109155 /apps/files_sharing/lib | |
parent | caebdc2a559f995ff5672cdea7c46a5febaa1ea5 (diff) | |
download | nextcloud-server-1f1b2a32cbc6f7d3416368ab835bd3f892ea8c71.tar.gz nextcloud-server-1f1b2a32cbc6f7d3416368ab835bd3f892ea8c71.zip |
cache the share owner name for formating cache entries
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'apps/files_sharing/lib')
-rw-r--r-- | apps/files_sharing/lib/Cache.php | 18 |
1 files changed, 14 insertions, 4 deletions
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; |