Hide resolve thread button from guest
- Show if user can_resolve all of the notes
This commit is contained in:
parent
42b8e6838e
commit
589c8d5625
5 changed files with 29 additions and 1 deletions
|
@ -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"
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Hide resolve thread button from guest
|
||||
merge_request: 32859
|
||||
author:
|
||||
type: changed
|
|
@ -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', () => {
|
||||
|
|
|
@ -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 });
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue