aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/lib
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav/lib')
-rw-r--r--apps/dav/lib/AppInfo/Application.php2
-rw-r--r--apps/dav/lib/CalDAV/CalDavBackend.php30
-rw-r--r--apps/dav/lib/Command/CreateCalendar.php2
-rw-r--r--apps/dav/lib/RootCollection.php2
4 files changed, 31 insertions, 5 deletions
diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php
index fa9d6e29fde..e1a01f12361 100644
--- a/apps/dav/lib/AppInfo/Application.php
+++ b/apps/dav/lib/AppInfo/Application.php
@@ -97,7 +97,7 @@ class Application extends App {
$c->getServer()->getUserManager(),
$c->getServer()->getGroupManager()
);
- return new CalDavBackend($db, $principal);
+ return new CalDavBackend($db, $principal, $c->getServer()->getUserManager());
});
$container->registerService('BirthdayService', function($c) {
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php
index 1f337ab0143..ea5c09939a6 100644
--- a/apps/dav/lib/CalDAV/CalDavBackend.php
+++ b/apps/dav/lib/CalDAV/CalDavBackend.php
@@ -30,6 +30,8 @@ use OCP\DB\QueryBuilder\IQueryBuilder;
use OCA\DAV\Connector\Sabre\Principal;
use OCA\DAV\DAV\Sharing\Backend;
use OCP\IDBConnection;
+use OCP\IUser;
+use OCP\IUserManager;
use Sabre\CalDAV\Backend\AbstractBackend;
use Sabre\CalDAV\Backend\SchedulingSupport;
use Sabre\CalDAV\Backend\SubscriptionSupport;
@@ -99,6 +101,11 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
'{http://calendarserver.org/ns/}subscribed-strip-attachments' => 'stripattachments',
];
+ /**
+ * @var string[] Map of uid => display name
+ */
+ protected $userDisplayNames;
+
/** @var IDBConnection */
private $db;
@@ -108,15 +115,20 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
/** @var Principal */
private $principalBackend;
+ /** @var IUserManager */
+ private $userManager;
+
/**
* CalDavBackend constructor.
*
* @param IDBConnection $db
* @param Principal $principalBackend
+ * @param IUserManager $userManager
*/
- public function __construct(IDBConnection $db, Principal $principalBackend) {
+ public function __construct(IDBConnection $db, Principal $principalBackend, IUserManager $userManager) {
$this->db = $db;
$this->principalBackend = $principalBackend;
+ $this->userManager = $userManager;
$this->sharingBackend = new Backend($this->db, $principalBackend, 'calendar');
}
@@ -217,7 +229,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
while($row = $result->fetch()) {
list(, $name) = URLUtil::splitPath($row['principaluri']);
$uri = $row['uri'] . '_shared_by_' . $name;
- $row['displayname'] = $row['displayname'] . "($name)";
+ $row['displayname'] = $row['displayname'] . ' (' . $this->getUserDisplayName($name) . ')';
$components = [];
if ($row['components']) {
$components = explode(',',$row['components']);
@@ -247,6 +259,20 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
return array_values($calendars);
}
+ 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];
+ }
+
/**
* @param string $principal
* @param string $uri
diff --git a/apps/dav/lib/Command/CreateCalendar.php b/apps/dav/lib/Command/CreateCalendar.php
index 7d07ad03279..0bc6398250e 100644
--- a/apps/dav/lib/Command/CreateCalendar.php
+++ b/apps/dav/lib/Command/CreateCalendar.php
@@ -76,7 +76,7 @@ class CreateCalendar extends Command {
);
$name = $input->getArgument('name');
- $caldav = new CalDavBackend($this->dbConnection, $principalBackend);
+ $caldav = new CalDavBackend($this->dbConnection, $principalBackend, $this->userManager);
$caldav->createCalendar("principals/users/$user", $name, []);
}
}
diff --git a/apps/dav/lib/RootCollection.php b/apps/dav/lib/RootCollection.php
index 16df85d8146..de3f7e2a857 100644
--- a/apps/dav/lib/RootCollection.php
+++ b/apps/dav/lib/RootCollection.php
@@ -59,7 +59,7 @@ class RootCollection extends SimpleCollection {
$systemPrincipals->disableListing = $disableListing;
$filesCollection = new Files\RootCollection($userPrincipalBackend, 'principals/users');
$filesCollection->disableListing = $disableListing;
- $caldavBackend = new CalDavBackend($db, $userPrincipalBackend);
+ $caldavBackend = new CalDavBackend($db, $userPrincipalBackend, \OC::$server->getUserManager());
$calendarRoot = new CalendarRoot($userPrincipalBackend, $caldavBackend, 'principals/users');
$calendarRoot->disableListing = $disableListing;