mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 14:23:39 +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
|
return if SiteSetting.must_approve_users
|
||||||
|
|
||||||
users = User
|
users = User
|
||||||
|
.distinct
|
||||||
.activated
|
.activated
|
||||||
.human_users
|
.human_users
|
||||||
.where(approved: false)
|
.where(approved: false)
|
||||||
.joins(:user_profile, :user_stat)
|
.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("LENGTH(COALESCE(user_profiles.bio_raw, user_profiles.website, '')) > 0")
|
||||||
.where("user_stats.posts_read_count <= 1 AND user_stats.topics_entered <= 1")
|
.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'")
|
.joins("LEFT OUTER JOIN reviewables r ON r.target_id = users.id AND r.target_type = 'User'")
|
||||||
.where('r.id IS NULL')
|
.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)
|
.limit(10)
|
||||||
|
|
||||||
users.each do |user|
|
users.each do |user|
|
||||||
|
|
|
@ -56,5 +56,29 @@ describe Jobs::EnqueueSuspectUsers do
|
||||||
|
|
||||||
expect(ReviewableUser.where(target: suspect_user).exists?).to eq(false)
|
expect(ReviewableUser.where(target: suspect_user).exists?).to eq(false)
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user