From 7532f24668242ee7e7925745d04631ffdd52cc20 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Mon, 13 Jul 2020 18:09:36 +0530 Subject: [PATCH] UX: better error message if moderator is not allowed to invite to group UX: do not show invite to group option if mod is not owner of any group --- .../app/components/invite-link-panel.js | 11 +++++- .../components/invite-link-panel.hbs | 22 ++++++----- app/controllers/invites_controller.rb | 38 +++++++++---------- config/locales/server.en.yml | 1 + 4 files changed, 42 insertions(+), 30 deletions(-) diff --git a/app/assets/javascripts/discourse/app/components/invite-link-panel.js b/app/assets/javascripts/discourse/app/components/invite-link-panel.js index 6856d2d2fee..b0d239360b6 100644 --- a/app/assets/javascripts/discourse/app/components/invite-link-panel.js +++ b/app/assets/javascripts/discourse/app/components/invite-link-panel.js @@ -1,7 +1,7 @@ import I18n from "I18n"; import Component from "@ember/component"; import Group from "discourse/models/group"; -import { readOnly } from "@ember/object/computed"; +import { alias, readOnly } from "@ember/object/computed"; import { action } from "@ember/object"; import discourseComputed from "discourse-common/utils/decorators"; import Invite from "discourse/models/invite"; @@ -17,6 +17,8 @@ export default Component.extend({ groupIds: null, allGroups: null, + isAdmin: alias("currentUser.admin"), + init() { this._super(...arguments); @@ -43,6 +45,13 @@ export default Component.extend({ errorMessage: I18n.t("user.invited.invite_link.error"), + @discourseComputed("isAdmin", "inviteModel.group_users") + showGroups(isAdmin, groupUsers) { + return ( + isAdmin || (groupUsers && groupUsers.some(groupUser => groupUser.owner)) + ); + }, + reset() { this.setProperties({ maxRedemptionAllowed: 5, diff --git a/app/assets/javascripts/discourse/app/templates/components/invite-link-panel.hbs b/app/assets/javascripts/discourse/app/templates/components/invite-link-panel.hbs index 4edd21338f0..270df195b76 100644 --- a/app/assets/javascripts/discourse/app/templates/components/invite-link-panel.hbs +++ b/app/assets/javascripts/discourse/app/templates/components/invite-link-panel.hbs @@ -9,16 +9,18 @@ {{generated-invite-link link=inviteModel.inviteLink}} {{else}} -
- - {{group-chooser - content=allGroups - value=groupIds - labelProperty="name" - onChange=(action (mut groupIds))}} -
+ {{#if showGroups}} +
+ + {{group-chooser + content=allGroups + value=groupIds + labelProperty="name" + onChange=(action (mut groupIds))}} +
+ {{/if}}