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}}