mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: allow disabling user activity tab for non admin users (#25540)
* FEATURE: allow disabling user activity tab for non admin users * add another test case
This commit is contained in:
@@ -139,6 +139,28 @@ RSpec.describe UserGuardian do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#can_see_user_actions?" do
|
||||
it "is true by default" do
|
||||
expect(Guardian.new.can_see_user_actions?(nil, [])).to eq(true)
|
||||
end
|
||||
|
||||
context "with 'hide_user_activity_tab' setting" do
|
||||
before { SiteSetting.hide_user_activity_tab = false }
|
||||
|
||||
it "returns true for self" do
|
||||
expect(Guardian.new(user).can_see_user_actions?(user, [])).to eq(true)
|
||||
end
|
||||
|
||||
it "returns true for admin" do
|
||||
expect(Guardian.new(admin).can_see_user_actions?(user, [])).to eq(true)
|
||||
end
|
||||
|
||||
it "returns false for regular user" do
|
||||
expect(Guardian.new.can_see_user_actions?(user, [])).to eq(true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "#allowed_user_field_ids" do
|
||||
let! :fields do
|
||||
[
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
RSpec.describe UserSummarySerializer do
|
||||
fab!(:user) { Fabricate(:user, refresh_auto_groups: true) }
|
||||
fab!(:another_user) { Fabricate(:user, refresh_auto_groups: true) }
|
||||
|
||||
it "returns expected data" do
|
||||
UserActionManager.enable
|
||||
user = Fabricate(:user, refresh_auto_groups: true)
|
||||
liked_user = Fabricate(:user, name: "John Doe", username: "john_doe", refresh_auto_groups: true)
|
||||
liked_post = create_post(user: liked_user)
|
||||
PostActionCreator.like(user, liked_post)
|
||||
|
||||
guardian = Guardian.new(user)
|
||||
guardian = Guardian.new(another_user)
|
||||
summary = UserSummary.new(user, guardian)
|
||||
serializer = UserSummarySerializer.new(summary, scope: guardian, root: false)
|
||||
json = serializer.as_json
|
||||
@@ -22,12 +24,22 @@ RSpec.describe UserSummarySerializer do
|
||||
expect(json[:most_liked_users][0][:name]).to eq("John Doe")
|
||||
expect(json[:most_liked_users][0][:username]).to eq("john_doe")
|
||||
expect(json[:most_liked_users][0][:avatar_template]).to eq(liked_user.avatar_template)
|
||||
expect(json[:can_see_user_actions]).to eq(true)
|
||||
|
||||
# do not include full name if disabled
|
||||
SiteSetting.enable_names = false
|
||||
expect(serializer.as_json[:most_liked_users][0][:name]).to eq(nil)
|
||||
end
|
||||
|
||||
it "respects hide_user_activity_tab setting" do
|
||||
SiteSetting.hide_user_activity_tab = true
|
||||
guardian = Guardian.new(another_user)
|
||||
summary = UserSummary.new(user, guardian)
|
||||
serializer = UserSummarySerializer.new(summary, scope: guardian, root: false)
|
||||
|
||||
expect(serializer.as_json[:can_see_user_actions]).to eq(false)
|
||||
end
|
||||
|
||||
it "returns correct links data ranking" do
|
||||
topic = Fabricate(:topic, user: Fabricate(:user, refresh_auto_groups: true))
|
||||
post = Fabricate(:post_with_external_links, user: topic.user, topic: topic)
|
||||
|
||||
Reference in New Issue
Block a user