FIX: moderators can add/remove group owners (#10960)

If `SiteSetting.moderators_manage_categories_and_groups` is enabled, a moderator shoud be able to add/remove group owners.
This commit is contained in:
jbrw
2020-10-19 16:30:21 -04:00
committed by GitHub
parent 5597aeb1b9
commit a74805d3f8
9 changed files with 172 additions and 7 deletions

View File

@@ -23,7 +23,7 @@ export default DropdownSelectBoxComponent.extend({
},
];
if (this.get("currentUser.admin")) {
if (this.canAdminGroup) {
if (this.member.owner) {
items.push({
id: "removeOwner",

View File

@@ -59,6 +59,7 @@
{{#if canManageGroup}}
{{group-member-dropdown
member=m
canAdminGroup=model.can_admin_group
onChange=(action "actOnGroup" m)
}}
{{/if}}

View File

@@ -45,6 +45,7 @@
{{#if canManageGroup}}
{{group-member-dropdown
member=user
canAdminGroup=model.can_admin_group
onChange=(action "actOnGroup" user)
}}
{{/if}}

View File

@@ -16,7 +16,7 @@
id="group-add-members-user-selector"}}
</div>
{{#if currentUser.admin}}
{{#if model.can_admin_group}}
<div class="control-group group-add-members-make-owner">
<label>
{{input type="checkbox"

View File

@@ -256,3 +256,33 @@ test("Admin Viewing Group", async (assert) => {
"it should display the group name"
);
});
test("Moderator Viewing Group", async (assert) => {
await visit("/g/alternative-group");
assert.ok(
find(".nav-pills li a[title='Manage']").length === 1,
"it should show manage group tab if user can_admin_group"
);
await click(".group-members-add.btn");
assert.ok(
find(".group-add-members-modal .group-add-members-make-owner"),
"it allows moderators to set group owners"
);
await click(".group-add-members-modal .modal-close");
const memberDropdown = selectKit(".group-member-dropdown:first");
await memberDropdown.expand();
assert.equal(
memberDropdown.rowByIndex(0).name(),
I18n.t("groups.members.remove_member")
);
assert.equal(
memberDropdown.rowByIndex(1).name(),
I18n.t("groups.members.make_owner")
);
});

View File

@@ -1295,5 +1295,33 @@ export default {
extras: {
visible_group_names: ["alternative-group"]
}
},
"/groups/alternative-group/members.json": {
owners: [],
members: [
{
id: 2770,
username: "awesomerobot",
uploaded_avatar_id: 33872,
avatar_template:
"/user_avatar/meta.discourse.org/awesomerobot/{size}/33872.png",
name: "",
last_seen_at: "2015-01-23T15:53:17.844Z"
},
{
id: 32,
username: "codinghorror",
uploaded_avatar_id: 5297,
avatar_template:
"/user_avatar/meta.discourse.org/codinghorror/{size}/5297.png",
name: "Jeff Atwood",
last_seen_at: "2015-01-23T06:05:25.457Z"
},
],
meta: {
total: 2,
limit: 50,
offset: 0
}
}
};