From b3df4bee9ce7ade74aad9e49071864d1e0914129 Mon Sep 17 00:00:00 2001 From: Vinoth Kannan Date: Mon, 24 Dec 2018 13:49:05 +0530 Subject: [PATCH] FIX: Hide group membership request button for existing members --- .../components/group-membership-button.js.es6 | 5 +++++ .../components/group-membership-button.hbs | 2 +- .../group-membership-button-test.js.es6 | 20 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/discourse/components/group-membership-button.js.es6 b/app/assets/javascripts/discourse/components/group-membership-button.js.es6 index b9559d34644..d816b328bec 100644 --- a/app/assets/javascripts/discourse/components/group-membership-button.js.es6 +++ b/app/assets/javascripts/discourse/components/group-membership-button.js.es6 @@ -15,6 +15,11 @@ export default Ember.Component.extend({ return publicExit && userIsGroupUser; }, + @computed("model.allow_membership_requests", "userIsGroupUser") + canRequestMembership(allowMembershipRequests, userIsGroupUser) { + return allowMembershipRequests && !userIsGroupUser; + }, + @computed("model.is_group_user") userIsGroupUser(isGroupUser) { return !!isGroupUser; diff --git a/app/assets/javascripts/discourse/templates/components/group-membership-button.hbs b/app/assets/javascripts/discourse/templates/components/group-membership-button.hbs index 2bd19564927..a76aeb27bd7 100644 --- a/app/assets/javascripts/discourse/templates/components/group-membership-button.hbs +++ b/app/assets/javascripts/discourse/templates/components/group-membership-button.hbs @@ -10,7 +10,7 @@ icon="user-times" label="groups.leave" disabled=updatingMembership}} -{{else if model.allow_membership_requests}} +{{else if canRequestMembership}} {{d-button action="showRequestMembershipForm" class="group-index-request" disabled=loading diff --git a/test/javascripts/components/group-membership-button-test.js.es6 b/test/javascripts/components/group-membership-button-test.js.es6 index 1c468551506..23049904f95 100644 --- a/test/javascripts/components/group-membership-button-test.js.es6 +++ b/test/javascripts/components/group-membership-button-test.js.es6 @@ -56,6 +56,26 @@ QUnit.test("canLeaveGroup", function(assert) { ); }); +QUnit.test("canRequestMembership", function(assert) { + this.subject().setProperties({ + model: { allow_membership_requests: true, is_group_user: true } + }); + + assert.equal( + this.subject().get("canRequestMembership"), + false, + "can't request for membership if user is already in the group" + ); + + this.subject().set("model.is_group_user", false); + + assert.equal( + this.subject().get("canRequestMembership"), + true, + "allowed to request for group membership" + ); +}); + QUnit.test("userIsGroupUser", function(assert) { this.subject().setProperties({ model: { is_group_user: true }