From 907fcb407edea83a3b7bda26e3ed67651fc064e4 Mon Sep 17 00:00:00 2001 From: Jonas Rittershofer Date: Sat, 2 May 2020 20:30:25 +0200 Subject: [PATCH] Use users displayname Signed-off-by: Jonas Rittershofer --- lib/Controller/ApiController.php | 30 ++++++++++++++++++++++++++- src/components/Results/Submission.vue | 5 +---- src/views/Results.vue | 2 +- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/lib/Controller/ApiController.php b/lib/Controller/ApiController.php index fdb3d73..13fef69 100644 --- a/lib/Controller/ApiController.php +++ b/lib/Controller/ApiController.php @@ -42,8 +42,11 @@ use OCP\AppFramework\Controller; use OCP\AppFramework\Db\IMapperException; use OCP\AppFramework\Http; use OCP\ILogger; +use OCP\IL10N; use OCP\IRequest; +use OCP\IUser; use OCP\IUserSession; +use OCP\IUserManager; use OCP\Security\ISecureRandom; class ApiController extends Controller { @@ -67,9 +70,15 @@ class ApiController extends Controller { /** @var ILogger */ private $logger; + /** @var IL10N */ + private $l10n; + /** @var IUserSession */ private $userSession; - + + /** @var IUserManager */ + private $userManager; + /** @var FormsService */ private $formsService; @@ -77,17 +86,20 @@ class ApiController extends Controller { IRequest $request, $userId, // TODO remove & replace with userSession below. IUserSession $userSession, + IUserManager $userManager, FormMapper $formMapper, SubmissionMapper $submissionMapper, AnswerMapper $answerMapper, QuestionMapper $questionMapper, OptionMapper $optionMapper, ILogger $logger, + IL10N $l10n, FormsService $formsService) { parent::__construct($appName, $request); $this->appName = $appName; $this->userId = $userId; $this->userSession = $userSession; + $this->userManager = $userManager; $this->formMapper = $formMapper; $this->questionMapper = $questionMapper; $this->optionMapper = $optionMapper; @@ -96,6 +108,7 @@ class ApiController extends Controller { $this->questionMapper = $questionMapper; $this->optionMapper = $optionMapper; $this->logger = $logger; + $this->l10n = $l10n; $this->formsService = $formsService; } @@ -600,6 +613,21 @@ class ApiController extends Controller { $submission = $submissionEntity->read(); $submission['answers'] = $this->getAnswers($submission['id']); + // Append Display Name + if (substr($submission['userId'], 0, 10) === 'anon-user-') { + // Anonymous User + $submission['userDisplayName'] = $this->l10n->t('anonymous user'); + } else { + $userEntity = $this->userManager->get($submission['userId']); + + if ($userEntity instanceof IUser) { + $submission['userDisplayName'] = $userEntity->getDisplayName(); + } else { + // Fallback, should not occur regularly. + $submission['userDisplayName'] = $submission['userId']; + } + } + // Add to returned List of Submissions $submissions[] = $submission; } diff --git a/src/components/Results/Submission.vue b/src/components/Results/Submission.vue index 3e6d102..c35feb3 100644 --- a/src/components/Results/Submission.vue +++ b/src/components/Results/Submission.vue @@ -24,7 +24,7 @@

- {{ t('forms', 'Response by {userDisplayName}', { userDisplayName }) }} + {{ t('forms', 'Response by {userDisplayName}', { userDisplayName: submission.userDisplayName }) }}

@@ -72,9 +72,6 @@ export default { }, computed: { - userDisplayName() { - return this.submission.userId - }, submissionDateTime() { return moment(this.submission.timestamp, 'X').format('LLLL') }, diff --git a/src/views/Results.vue b/src/views/Results.vue index dfc70bf..b1efe60 100644 --- a/src/views/Results.vue +++ b/src/views/Results.vue @@ -194,7 +194,7 @@ export default { const formattedSubmissions = [] this.submissions.forEach(submission => { const formattedSubmission = { - userId: submission.userId, + userDisplayName: submission.userDisplayName, timestamp: moment(submission.timestamp, 'X').format('L LT'), }