Show "no owner" when challenge leader cannot be found

Fixes #11768

- Check if `challenge.leader` is `null` before trying to display the user's name after "Created By:"
- Check the `challenge.leader` isn't `null` before trying to get its `id` for comparison when determining if the current user `canDelete` or `canEdit`
This commit is contained in:
Tom Thorpe
2020-02-01 09:17:59 +00:00
parent c772afd0c8
commit 311df85dfc
3 changed files with 15 additions and 3 deletions

View File

@@ -18,7 +18,10 @@
<div> <div>
<span class="mr-1 ml-0 d-block"> <span class="mr-1 ml-0 d-block">
<strong v-once>{{ $t('createdBy') }}:</strong> <strong v-once>{{ $t('createdBy') }}:</strong>
<user-link <span v-if="challenge.leader === null">
{{ $t('noChallengeOwner') }}
</span>
<user-link v-else
class="mx-1" class="mx-1"
:user="challenge.leader" :user="challenge.leader"
/> />

View File

@@ -43,7 +43,14 @@
> >
<div class="owner-item"> <div class="owner-item">
<strong>{{ $t('createdBy') }}:</strong> <strong>{{ $t('createdBy') }}:</strong>
<span
v-if="challenge.leader === null"
class="mx-1"
>
{{ $t('noChallengeOwner') }}
</span>
<user-link <user-link
v-else
class="mx-1" class="mx-1"
:user="challenge.leader" :user="challenge.leader"
/> />

View File

@@ -44,7 +44,8 @@ export function canDelete (store) {
&& group.leader._id === userId); && group.leader._id === userId);
const isUserGroupManager = group && (group.managers const isUserGroupManager = group && (group.managers
&& Boolean(group.managers[userId])); && Boolean(group.managers[userId]));
const isUserChallenge = userId === (challenge && challenge.leader.id); const isUserChallenge = userId === (challenge
&& challenge.leader !== null && challenge.leader.id);
let isUserCanDeleteTask = onUserDashboard; let isUserCanDeleteTask = onUserDashboard;
@@ -81,7 +82,8 @@ export function canEdit (store) {
&& group.leader._id === userId); && group.leader._id === userId);
const isUserGroupManager = group && (group.managers const isUserGroupManager = group && (group.managers
&& Boolean(group.managers[userId])); && Boolean(group.managers[userId]));
const isUserChallenge = userId === (challenge && challenge.leader.id); const isUserChallenge = userId === (challenge
&& challenge.leader !== null && challenge.leader.id);
switch (taskCategory) { switch (taskCategory) {