diff --git a/apps/files/lib/Activity/Provider.php b/apps/files/lib/Activity/Provider.php index c2e753e916..f1ffb85120 100644 --- a/apps/files/lib/Activity/Provider.php +++ b/apps/files/lib/Activity/Provider.php @@ -26,6 +26,8 @@ use OCP\Activity\IManager; use OCP\Activity\IProvider; use OCP\IL10N; use OCP\IURLGenerator; +use OCP\IUser; +use OCP\IUserManager; class Provider implements IProvider { @@ -38,15 +40,23 @@ class Provider implements IProvider { /** @var IManager */ protected $activityManager; + /** @var IUserManager */ + protected $userManager; + + /** @var string[] cached displayNames - key is the UID and value the displayname */ + protected $displayNames = []; + /** * @param IL10N $l * @param IURLGenerator $url * @param IManager $activityManager + * @param IUserManager $userManager */ - public function __construct(IL10N $l, IURLGenerator $url, IManager $activityManager) { + public function __construct(IL10N $l, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) { $this->l = $l; $this->url = $url; $this->activityManager = $activityManager; + $this->userManager = $userManager; } /** @@ -265,11 +275,28 @@ class Provider implements IProvider { ]; } - protected function getRichUserParameter($parameter) { + protected function getRichUserParameter($uid) { + if (!isset($this->displayNames[$uid])) { + $this->displayNames[$uid] = $this->getDisplayName($uid); + } + return [ 'type' => 'user', - 'id' => $parameter, - 'name' => $parameter,// FIXME Use display name + 'id' => $uid, + 'name' => $this->displayNames[$uid], ]; } + + /** + * @param string $uid + * @return string + */ + protected function getDisplayName($uid) { + $user = $this->userManager->get($uid); + if ($user instanceof IUser) { + return $user->getDisplayName(); + } else { + return $uid; + } + } } diff --git a/apps/systemtags/lib/Activity/Provider.php b/apps/systemtags/lib/Activity/Provider.php index 9d85300d5b..37ede8c3b8 100644 --- a/apps/systemtags/lib/Activity/Provider.php +++ b/apps/systemtags/lib/Activity/Provider.php @@ -26,6 +26,8 @@ use OCP\Activity\IManager; use OCP\Activity\IProvider; use OCP\IL10N; use OCP\IURLGenerator; +use OCP\IUser; +use OCP\IUserManager; class Provider implements IProvider { @@ -45,15 +47,23 @@ class Provider implements IProvider { /** @var IManager */ protected $activityManager; + /** @var IUserManager */ + protected $userManager; + + /** @var string[] */ + protected $displayNames = []; + /** * @param IL10N $l * @param IURLGenerator $url * @param IManager $activityManager + * @param IUserManager $userManager */ - public function __construct(IL10N $l, IURLGenerator $url, IManager $activityManager) { + public function __construct(IL10N $l, IURLGenerator $url, IManager $activityManager, IUserManager $userManager) { $this->l = $l; $this->url = $url; $this->activityManager = $activityManager; + $this->userManager = $userManager; } /** @@ -278,11 +288,15 @@ class Provider implements IProvider { ]; } - protected function getUserParameter($parameter) { + protected function getUserParameter($uid) { + if (!isset($this->displayNames[$uid])) { + $this->displayNames[$uid] = $this->getDisplayName($uid); + } + return [ 'type' => 'user', - 'id' => $parameter, - 'name' => $parameter,// FIXME Use display name + 'id' => $uid, + 'name' => $this->displayNames[$uid], ]; } @@ -295,4 +309,17 @@ class Provider implements IProvider { return $this->l->t('%s (invisible)', $parameter['name']); } } + + /** + * @param string $uid + * @return string + */ + protected function getDisplayName($uid) { + $user = $this->userManager->get($uid); + if ($user instanceof IUser) { + return $user->getDisplayName(); + } else { + return $uid; + } + } }