Use users displayname

Signed-off-by: Jonas Rittershofer <jotoeri@users.noreply.github.com>
This commit is contained in:
Jonas Rittershofer 2020-05-02 20:30:25 +02:00
parent a6f77b0c2f
commit 907fcb407e
3 changed files with 31 additions and 6 deletions

View file

@ -42,8 +42,11 @@ use OCP\AppFramework\Controller;
use OCP\AppFramework\Db\IMapperException; use OCP\AppFramework\Db\IMapperException;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\ILogger; use OCP\ILogger;
use OCP\IL10N;
use OCP\IRequest; use OCP\IRequest;
use OCP\IUser;
use OCP\IUserSession; use OCP\IUserSession;
use OCP\IUserManager;
use OCP\Security\ISecureRandom; use OCP\Security\ISecureRandom;
class ApiController extends Controller { class ApiController extends Controller {
@ -67,9 +70,15 @@ class ApiController extends Controller {
/** @var ILogger */ /** @var ILogger */
private $logger; private $logger;
/** @var IL10N */
private $l10n;
/** @var IUserSession */ /** @var IUserSession */
private $userSession; private $userSession;
/** @var IUserManager */
private $userManager;
/** @var FormsService */ /** @var FormsService */
private $formsService; private $formsService;
@ -77,17 +86,20 @@ class ApiController extends Controller {
IRequest $request, IRequest $request,
$userId, // TODO remove & replace with userSession below. $userId, // TODO remove & replace with userSession below.
IUserSession $userSession, IUserSession $userSession,
IUserManager $userManager,
FormMapper $formMapper, FormMapper $formMapper,
SubmissionMapper $submissionMapper, SubmissionMapper $submissionMapper,
AnswerMapper $answerMapper, AnswerMapper $answerMapper,
QuestionMapper $questionMapper, QuestionMapper $questionMapper,
OptionMapper $optionMapper, OptionMapper $optionMapper,
ILogger $logger, ILogger $logger,
IL10N $l10n,
FormsService $formsService) { FormsService $formsService) {
parent::__construct($appName, $request); parent::__construct($appName, $request);
$this->appName = $appName; $this->appName = $appName;
$this->userId = $userId; $this->userId = $userId;
$this->userSession = $userSession; $this->userSession = $userSession;
$this->userManager = $userManager;
$this->formMapper = $formMapper; $this->formMapper = $formMapper;
$this->questionMapper = $questionMapper; $this->questionMapper = $questionMapper;
$this->optionMapper = $optionMapper; $this->optionMapper = $optionMapper;
@ -96,6 +108,7 @@ class ApiController extends Controller {
$this->questionMapper = $questionMapper; $this->questionMapper = $questionMapper;
$this->optionMapper = $optionMapper; $this->optionMapper = $optionMapper;
$this->logger = $logger; $this->logger = $logger;
$this->l10n = $l10n;
$this->formsService = $formsService; $this->formsService = $formsService;
} }
@ -600,6 +613,21 @@ class ApiController extends Controller {
$submission = $submissionEntity->read(); $submission = $submissionEntity->read();
$submission['answers'] = $this->getAnswers($submission['id']); $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 // Add to returned List of Submissions
$submissions[] = $submission; $submissions[] = $submission;
} }

View file

@ -24,7 +24,7 @@
<div class="section submission"> <div class="section submission">
<div class="submission-head"> <div class="submission-head">
<h3> <h3>
{{ t('forms', 'Response by {userDisplayName}', { userDisplayName }) }} {{ t('forms', 'Response by {userDisplayName}', { userDisplayName: submission.userDisplayName }) }}
</h3> </h3>
<Actions class="submission-menu" :force-menu="true"> <Actions class="submission-menu" :force-menu="true">
<ActionButton icon="icon-delete" @click="onDelete"> <ActionButton icon="icon-delete" @click="onDelete">
@ -72,9 +72,6 @@ export default {
}, },
computed: { computed: {
userDisplayName() {
return this.submission.userId
},
submissionDateTime() { submissionDateTime() {
return moment(this.submission.timestamp, 'X').format('LLLL') return moment(this.submission.timestamp, 'X').format('LLLL')
}, },

View file

@ -194,7 +194,7 @@ export default {
const formattedSubmissions = [] const formattedSubmissions = []
this.submissions.forEach(submission => { this.submissions.forEach(submission => {
const formattedSubmission = { const formattedSubmission = {
userId: submission.userId, userDisplayName: submission.userDisplayName,
timestamp: moment(submission.timestamp, 'X').format('L LT'), timestamp: moment(submission.timestamp, 'X').format('L LT'),
} }