diff --git a/app/services/user_blocker.rb b/app/services/user_blocker.rb index ee9ee1b68ea..5ee5bc01892 100644 --- a/app/services/user_blocker.rb +++ b/app/services/user_blocker.rb @@ -26,6 +26,8 @@ class UserBlocker end def hide_posts + return unless @user.trust_level == TrustLevel[0] + Post.where(user_id: @user.id).update_all(["hidden = true, hidden_reason_id = COALESCE(hidden_reason_id, ?)", Post.hidden_reasons[:new_user_spam_threshold_reached]]) topic_ids = Post.where(user_id: @user.id, post_number: 1).pluck(:topic_id) Topic.where(id: topic_ids).update_all(visible: false) unless topic_ids.empty? diff --git a/spec/services/user_blocker_spec.rb b/spec/services/user_blocker_spec.rb index 49d526c59b4..b75b5766a79 100644 --- a/spec/services/user_blocker_spec.rb +++ b/spec/services/user_blocker_spec.rb @@ -27,8 +27,6 @@ describe UserBlocker do SystemMessage.expects(:create).with(user, :blocked_by_staff).returns(true) UserBlocker.block(user, Fabricate.build(:admin)) end - - # TODO: it 'logs the action' end context 'not given a staff user argument' do @@ -83,12 +81,10 @@ describe UserBlocker do SystemMessage.expects(:create).never unblock_user end - - # TODO: it 'logs the action' end describe 'hide_posts' do - let(:user) { Fabricate(:user) } + let(:user) { Fabricate(:user, trust_level: 0) } let!(:post) { Fabricate(:post, user: user) } subject { UserBlocker.new(user) } @@ -101,6 +97,13 @@ describe UserBlocker do subject.block expect(post.topic.reload).to_not be_visible end + + it "doesn't hide posts if user is TL1" do + user.trust_level = 1 + subject.block + expect(post.reload).to_not be_hidden + expect(post.topic.reload).to be_visible + end end end