mirror of
https://github.com/discourse/discourse.git
synced 2025-05-31 14:08:32 +08:00
FEATURE - Moderators can create and manage groups (#10432)
Enabling the moderators_manage_categories_and_groups site setting will allow moderator users to create/manage groups. * show New Group form to moderators * Allow moderators to update groups and read logs, where appropriate * Rename site setting from create -> manage * improved tests * Migration should rename old log entries * Log group changes, even if those changes mean you can no longer see the group * Slight reshuffle * RouteTo /g if they no longer have permissions to view group
This commit is contained in:
@ -8,7 +8,13 @@ acceptance("Managing Group Interaction Settings", {
|
||||
});
|
||||
|
||||
QUnit.test("As an admin", async assert => {
|
||||
await visit("/g/discourse/manage/interaction");
|
||||
updateCurrentUser({
|
||||
moderator: false,
|
||||
admin: true,
|
||||
can_create_group: true
|
||||
});
|
||||
|
||||
await visit("/g/alternative-group/manage/interaction");
|
||||
|
||||
assert.equal(
|
||||
find(".groups-form-visibility-level").length,
|
||||
@ -42,13 +48,18 @@ QUnit.test("As an admin", async assert => {
|
||||
});
|
||||
|
||||
QUnit.test("As a group owner", async assert => {
|
||||
updateCurrentUser({ moderator: false, admin: false });
|
||||
updateCurrentUser({
|
||||
moderator: false,
|
||||
admin: false,
|
||||
can_create_group: false
|
||||
});
|
||||
|
||||
await visit("/g/discourse/manage/interaction");
|
||||
|
||||
assert.equal(
|
||||
find(".groups-form-visibility-level").length,
|
||||
0,
|
||||
"it should display visibility level selector"
|
||||
"it should not display visibility level selector"
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
|
@ -6,7 +6,9 @@ acceptance("Managing Group Membership", {
|
||||
});
|
||||
|
||||
QUnit.test("As an admin", async assert => {
|
||||
await visit("/g/discourse/manage/membership");
|
||||
updateCurrentUser({ can_create_group: true });
|
||||
|
||||
await visit("/g/alternative-group/manage/membership");
|
||||
|
||||
assert.ok(
|
||||
find('label[for="automatic_membership"]').length === 1,
|
||||
|
@ -34,7 +34,11 @@ QUnit.test("As an admin", async assert => {
|
||||
});
|
||||
|
||||
QUnit.test("As a group owner", async assert => {
|
||||
updateCurrentUser({ moderator: false, admin: false });
|
||||
updateCurrentUser({
|
||||
moderator: false,
|
||||
admin: false,
|
||||
can_create_group: false
|
||||
});
|
||||
|
||||
await visit("/g/discourse/manage/profile");
|
||||
|
||||
|
@ -1273,5 +1273,27 @@ export default {
|
||||
"/user_avatar/meta.discourse.org/codinghorror/{size}/5297.png"
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"/groups/alternative-group.json": {
|
||||
group: {
|
||||
id: 57,
|
||||
automatic: false,
|
||||
name: "alternative-group",
|
||||
full_name: "Moderatable Table",
|
||||
user_count: 8,
|
||||
alias_level: 99,
|
||||
visible: true,
|
||||
public_admission: true,
|
||||
public_exit: false,
|
||||
flair_url: "fa-adjust",
|
||||
is_group_owner: true,
|
||||
mentionable: true,
|
||||
messageable: true,
|
||||
can_see_members: true,
|
||||
can_admin_group: true,
|
||||
},
|
||||
extras: {
|
||||
visible_group_names: ["alternative-group"]
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -14,6 +14,7 @@ export default {
|
||||
site_flagged_posts_count: 1,
|
||||
moderator: true,
|
||||
staff: true,
|
||||
can_create_group: true,
|
||||
title: "co-founder",
|
||||
reply_count: 859,
|
||||
topic_count: 36,
|
||||
|
@ -52,6 +52,7 @@ QUnit.test("canMangeGroup", assert => {
|
||||
);
|
||||
|
||||
group.set("automatic", false);
|
||||
group.setProperties({ can_admin_group: true });
|
||||
|
||||
assert.equal(
|
||||
user.canManageGroup(group),
|
||||
|
Reference in New Issue
Block a user