Hide resolve thread button from guest

- Show if user can_resolve all of the notes
This commit is contained in:
Samantha Ming 2019-09-12 07:41:19 +00:00 committed by Kushal Pandya
parent 42b8e6838e
commit 589c8d5625
5 changed files with 29 additions and 1 deletions

View file

@ -35,6 +35,13 @@ export default {
required: true,
},
},
computed: {
userCanResolveDiscussion() {
return this.discussion.notes.every(
note => note.current_user && note.current_user.can_resolve,
);
},
},
};
</script>
@ -46,7 +53,7 @@ export default {
@onClick="$emit('showReplyForm')"
/>
<div class="btn-group discussion-actions" role="group">
<div v-if="userCanResolveDiscussion" class="btn-group discussion-actions" role="group">
<div class="btn-group">
<resolve-discussion-button
v-if="discussion.resolvable"

View file

@ -0,0 +1,5 @@
---
title: Hide resolve thread button from guest
merge_request: 32859
author:
type: changed

View file

@ -65,6 +65,15 @@ describe('DiscussionActions', () => {
expect(wrapper.find(JumpToNextDiscussionButton).exists()).toBe(false);
});
it('does not renders discussion button for non-member', () => {
const discussion = JSON.parse(JSON.stringify(discussionMock));
discussion.notes[1].current_user.can_resolve = false;
createComponent({ discussion });
expect(wrapper.find(ResolveDiscussionButton).exists()).toBe(false);
expect(wrapper.find(ResolveWithIssueButton).exists()).toBe(false);
});
});
describe('events handling', () => {

View file

@ -255,6 +255,10 @@ describe('noteable_discussion component', () => {
discussion.notes = discussion.notes.map(note => ({
...note,
resolved: false,
current_user: {
...note.current_user,
can_resolve: true,
},
}));
wrapper.setProps({ discussion });

View file

@ -200,6 +200,7 @@ export const discussionMock = {
current_user: {
can_edit: true,
can_award_emoji: true,
can_resolve: true,
},
discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
emoji_awardable: true,
@ -246,6 +247,7 @@ export const discussionMock = {
current_user: {
can_edit: true,
can_award_emoji: true,
can_resolve: true,
},
discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
emoji_awardable: true,
@ -292,6 +294,7 @@ export const discussionMock = {
current_user: {
can_edit: true,
can_award_emoji: true,
can_resolve: true,
},
discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
emoji_awardable: true,