mirror of
https://github.com/discourse/discourse.git
synced 2025-06-03 02:48:28 +08:00
FIX: Admin can't see user sidebar preferences of other users (#19570)
This commit is contained in:

committed by
GitHub

parent
9f927cf999
commit
1d926e88a9
@ -372,53 +372,17 @@ RSpec.describe UserSerializer do
|
||||
end
|
||||
end
|
||||
|
||||
describe '#sidebar_tags' do
|
||||
fab!(:tag_sidebar_section_link) { Fabricate(:tag_sidebar_section_link, user: user) }
|
||||
fab!(:tag_sidebar_section_link_2) { Fabricate(:tag_sidebar_section_link, user: user) }
|
||||
context 'for user sidebar attributes' do
|
||||
include_examples "User Sidebar Serializer Attributes", described_class
|
||||
|
||||
context 'when viewing self' do
|
||||
subject(:json) { UserSerializer.new(user, scope: Guardian.new(user), root: false).as_json }
|
||||
it "does not include attributes when scoped to user that cannot edit user" do
|
||||
user2 = Fabricate(:user)
|
||||
serializer = described_class.new(user, scope: Guardian.new(user2), root: false)
|
||||
|
||||
it "is not included when navigation menu is set to legacy" do
|
||||
SiteSetting.navigation_menu = "legacy"
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
expect(json[:sidebar_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is not included when SiteSetting.tagging_enabled is false" do
|
||||
SiteSetting.navigation_menu = "sidebar"
|
||||
SiteSetting.tagging_enabled = false
|
||||
|
||||
expect(json[:sidebar_tags]).to eq(nil)
|
||||
end
|
||||
|
||||
it "is present when sidebar and tagging has been enabled" do
|
||||
SiteSetting.navigation_menu = "sidebar"
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
tag_sidebar_section_link_2.linkable.update!(pm_topic_count: 5, topic_count: 0)
|
||||
|
||||
expect(json[:sidebar_tags]).to contain_exactly(
|
||||
{ name: tag_sidebar_section_link.linkable.name, pm_only: false },
|
||||
{ name: tag_sidebar_section_link_2.linkable.name, pm_only: true }
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when viewing another user' do
|
||||
fab!(:user2) { Fabricate(:user) }
|
||||
|
||||
subject(:json) { UserSerializer.new(user, scope: Guardian.new(user2), root: false).as_json }
|
||||
|
||||
it "is not present even when sidebar and tagging has been enabled" do
|
||||
SiteSetting.navigation_menu = "sidebar"
|
||||
SiteSetting.tagging_enabled = true
|
||||
|
||||
expect(json[:sidebar_tags]).to eq(nil)
|
||||
end
|
||||
expect(serializer.as_json[:sidebar_category_ids]).to eq(nil)
|
||||
expect(serializer.as_json[:sidebar_tags]).to eq(nil)
|
||||
expect(serializer.as_json[:sidebar_list_destination]).to eq(nil)
|
||||
expect(serializer.as_json[:display_sidebar_tags]).to eq(nil)
|
||||
end
|
||||
end
|
||||
|
||||
include_examples "#display_sidebar_tags", UserSerializer
|
||||
end
|
||||
|
Reference in New Issue
Block a user