mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Allow admin to manage group owners on group page.
This commit is contained in:
parent
bfe38b2118
commit
1cc0961566
@ -8,8 +8,8 @@ export default DropdownButton.extend({
|
|||||||
text: iconHTML('ellipsis-h'),
|
text: iconHTML('ellipsis-h'),
|
||||||
classNames: ['group-member-dropdown'],
|
classNames: ['group-member-dropdown'],
|
||||||
|
|
||||||
@computed()
|
@computed("member.owner")
|
||||||
dropDownContent() {
|
dropDownContent(isOwner) {
|
||||||
const items = [
|
const items = [
|
||||||
{
|
{
|
||||||
id: 'removeMember',
|
id: 'removeMember',
|
||||||
@ -22,6 +22,30 @@ export default DropdownButton.extend({
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if (this.currentUser && this.currentUser.admin) {
|
||||||
|
if (isOwner) {
|
||||||
|
items.push({
|
||||||
|
id: 'removeOwner',
|
||||||
|
title: I18n.t('groups.members.remove_owner'),
|
||||||
|
description: I18n.t(
|
||||||
|
'groups.members.remove_owner_description',
|
||||||
|
{ username: this.get('member.username') }
|
||||||
|
),
|
||||||
|
icon: 'shield'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
items.push({
|
||||||
|
id: 'makeOwner',
|
||||||
|
title: I18n.t('groups.members.make_owner'),
|
||||||
|
description: I18n.t(
|
||||||
|
'groups.members.make_owner_description',
|
||||||
|
{ username: this.get('member.username') }
|
||||||
|
),
|
||||||
|
icon: 'shield'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return items;
|
return items;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -30,6 +54,12 @@ export default DropdownButton.extend({
|
|||||||
case 'removeMember':
|
case 'removeMember':
|
||||||
this.sendAction('removeMember', this.get('member'));
|
this.sendAction('removeMember', this.get('member'));
|
||||||
break;
|
break;
|
||||||
|
case 'makeOwner':
|
||||||
|
this.sendAction('makeOwner', this.get('member.username'));
|
||||||
|
break;
|
||||||
|
case 'removeOwner':
|
||||||
|
this.sendAction('removeOwner', this.get('member'));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -41,6 +41,14 @@ export default Ember.Controller.extend({
|
|||||||
this.get('model').removeMember(user);
|
this.get('model').removeMember(user);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
makeOwner(username) {
|
||||||
|
this.get('model').addOwners(username);
|
||||||
|
},
|
||||||
|
|
||||||
|
removeOwner(user) {
|
||||||
|
this.get('model').removeOwner(user);
|
||||||
|
},
|
||||||
|
|
||||||
addMembers() {
|
addMembers() {
|
||||||
const usernames = this.get('usernames');
|
const usernames = this.get('usernames');
|
||||||
if (usernames && usernames.length > 0) {
|
if (usernames && usernames.length > 0) {
|
||||||
|
@ -87,12 +87,11 @@ const Group = RestModel.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
addOwners(usernames) {
|
addOwners(usernames) {
|
||||||
var self = this;
|
|
||||||
return ajax(`/admin/groups/${this.get('id')}/owners.json`, {
|
return ajax(`/admin/groups/${this.get('id')}/owners.json`, {
|
||||||
type: "PUT",
|
type: "PUT",
|
||||||
data: { group: { usernames: usernames } }
|
data: { group: { usernames: usernames } }
|
||||||
}).then(function() {
|
}).then(() => {
|
||||||
self.findMembers();
|
this.findMembers();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
{{#if canManageGroup}}
|
{{#if canManageGroup}}
|
||||||
{{group-member-dropdown
|
{{group-member-dropdown
|
||||||
removeMember="removeMember"
|
removeMember="removeMember"
|
||||||
|
makeOwner="makeOwner"
|
||||||
|
removeOwner="removeOwner"
|
||||||
member=m}}
|
member=m}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</td>
|
</td>
|
||||||
|
@ -466,8 +466,12 @@ en:
|
|||||||
activity: "Activity"
|
activity: "Activity"
|
||||||
members:
|
members:
|
||||||
title: "Members"
|
title: "Members"
|
||||||
remove_member: "Remove member"
|
remove_member: "Remove Member"
|
||||||
remove_member_description: "Remove <b>%{username}</b> from this group"
|
remove_member_description: "Remove <b>%{username}</b> from this group"
|
||||||
|
make_owner: "Make Owner"
|
||||||
|
make_owner_description: "Make <b>%{username}</b> an owner of this group"
|
||||||
|
remove_owner: "Remove as Owner"
|
||||||
|
remove_owner_description: "Remove <b>%{username}</b> as an owner of this group"
|
||||||
topics: "Topics"
|
topics: "Topics"
|
||||||
posts: "Posts"
|
posts: "Posts"
|
||||||
mentions: "Mentions"
|
mentions: "Mentions"
|
||||||
|
Loading…
Reference in New Issue
Block a user