mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 03:54:59 +08:00
FIX: Ignore suspect users that were migrated or users who were created more than six months ago (#9205)
This commit is contained in:
parent
e825f47daa
commit
27bc4f51c7
|
@ -9,15 +9,19 @@ module Jobs
|
|||
return if SiteSetting.must_approve_users
|
||||
|
||||
users = User
|
||||
.distinct
|
||||
.activated
|
||||
.human_users
|
||||
.where(approved: false)
|
||||
.joins(:user_profile, :user_stat)
|
||||
.where("users.created_at <= ?", 1.day.ago)
|
||||
.where("users.created_at <= ? AND users.created_at >= ?", 1.day.ago, 6.months.ago)
|
||||
.where("LENGTH(COALESCE(user_profiles.bio_raw, user_profiles.website, '')) > 0")
|
||||
.where("user_stats.posts_read_count <= 1 AND user_stats.topics_entered <= 1")
|
||||
.joins("LEFT OUTER JOIN reviewables r ON r.target_id = users.id AND r.target_type = 'User'")
|
||||
.where('r.id IS NULL')
|
||||
.joins('LEFT OUTER JOIN user_custom_fields ucf ON users.id = ucf.user_id')
|
||||
.group('users.id, ucf.id')
|
||||
.having('ucf.id IS NULL OR NOT bool_or(ucf.name = ?)', 'import_id')
|
||||
.limit(10)
|
||||
|
||||
users.each do |user|
|
||||
|
|
|
@ -56,5 +56,29 @@ describe Jobs::EnqueueSuspectUsers do
|
|||
|
||||
expect(ReviewableUser.where(target: suspect_user).exists?).to eq(false)
|
||||
end
|
||||
|
||||
it 'ignores users created more than six months ago' do
|
||||
suspect_user.update!(created_at: 1.year.ago)
|
||||
|
||||
subject.execute({})
|
||||
|
||||
expect(ReviewableUser.where(target: suspect_user).exists?).to eq(false)
|
||||
end
|
||||
|
||||
it 'ignores users that were imported from another site' do
|
||||
suspect_user.upsert_custom_fields({ import_id: 'fake_id' })
|
||||
|
||||
subject.execute({})
|
||||
|
||||
expect(ReviewableUser.where(target: suspect_user).exists?).to eq(false)
|
||||
end
|
||||
|
||||
it 'enqueues a suspect users with custom fields' do
|
||||
suspect_user.upsert_custom_fields({ field_a: 'value', field_b: 'value' })
|
||||
|
||||
subject.execute({})
|
||||
|
||||
expect(ReviewableUser.where(target: suspect_user).exists?).to eq(true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user