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:
authorRobin Appelman <robin@icewind.nl>2022-04-21 18:33:18 +0300
committerRobin Appelman <robin@icewind.nl>2022-04-21 18:33:18 +0300
commit1f1b2a32cbc6f7d3416368ab835bd3f892ea8c71 (patch)
treebffd4326d1b703176c616a60da71249724109155 /apps/files_sharing/lib
parentcaebdc2a559f995ff5672cdea7c46a5febaa1ea5 (diff)
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.php18
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;