mirror of
https://github.com/discourse/discourse.git
synced 2025-03-26 22:49:25 +08:00
FIX: Staff users are not affected by enable_group_directory
site setting.
This commit is contained in:
parent
6995382323
commit
d9d86577ff
app
spec/requests
@ -116,7 +116,7 @@ export default createWidget('hamburger-menu', {
|
||||
links.push({ route: 'users', className: 'user-directory-link', label: 'directory.title' });
|
||||
}
|
||||
|
||||
if (this.siteSettings.enable_group_directory) {
|
||||
if (this.siteSettings.enable_group_directory || this.currentUser.staff) {
|
||||
links.push({ route: 'groups', className: 'groups-link', label: 'groups.index.title' });
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@ class GroupsController < ApplicationController
|
||||
}
|
||||
|
||||
def index
|
||||
unless SiteSetting.enable_group_directory?
|
||||
unless SiteSetting.enable_group_directory? || current_user&.staff?
|
||||
raise Discourse::InvalidAccess.new(:enable_group_directory)
|
||||
end
|
||||
|
||||
|
@ -4,6 +4,8 @@ describe GroupsController do
|
||||
let(:user) { Fabricate(:user) }
|
||||
let(:group) { Fabricate(:group, users: [user]) }
|
||||
let(:moderator_group_id) { Group::AUTO_GROUPS[:moderators] }
|
||||
let(:admin) { Fabricate(:admin) }
|
||||
let(:moderator) { Fabricate(:moderator) }
|
||||
|
||||
describe '#index' do
|
||||
let(:staff_group) do
|
||||
@ -11,11 +13,32 @@ describe GroupsController do
|
||||
end
|
||||
|
||||
context 'when group directory is disabled' do
|
||||
it 'should deny access' do
|
||||
before do
|
||||
SiteSetting.enable_group_directory = false
|
||||
end
|
||||
|
||||
it 'should deny access for an anon user' do
|
||||
get "/groups.json"
|
||||
expect(response).to be_forbidden
|
||||
expect(response.status).to eq(403)
|
||||
end
|
||||
|
||||
it 'should deny access for a normal user' do
|
||||
get "/groups.json"
|
||||
expect(response.status).to eq(403)
|
||||
end
|
||||
|
||||
it 'should not deny access for an admin' do
|
||||
sign_in(admin)
|
||||
get "/groups.json"
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
end
|
||||
|
||||
it 'should not deny access for a moderator' do
|
||||
sign_in(moderator)
|
||||
get "/groups.json"
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user