Banned users are not returned as pending review users

This commit is contained in:
Neil Lalonde 2013-08-22 19:23:49 -04:00
parent 25e0c3eac1
commit 3b15e2e58e
3 changed files with 10 additions and 1 deletions

View file

@ -68,6 +68,7 @@ class User < ActiveRecord::Base
scope :blocked, -> { where(blocked: true) } # no index
scope :banned, -> { where('banned_till IS NOT NULL AND banned_till > ?', Time.zone.now) } # no index
scope :not_banned, -> { where('banned_till IS NULL') }
module NewTopicDuration
ALWAYS = -1

View file

@ -30,7 +30,7 @@ class AdminUserIndexQuery
when 'moderators' then @query.where('moderator = ?', true)
when 'blocked' then @query.blocked
when 'banned' then @query.banned
when 'pending' then @query.where('approved = false')
when 'pending' then @query.not_banned.where('approved = false')
end
end

View file

@ -46,6 +46,14 @@ describe AdminUserIndexQuery do
expect(query.find_users.count).to eq(1)
end
context 'and a banned pending user' do
let!(:banned_user) { Fabricate(:user, approved: false, banned_at: 1.hour.ago, banned_till: 20.years.from_now) }
it "doesn't return the banned user" do
query = ::AdminUserIndexQuery.new({ query: 'pending' })
expect(query.find_users.count).to eq(1)
end
end
end
describe "with an admin user" do