FEATURE: Send suspect users to the review queue (#8811)

This commit is contained in:
Roman Rizzi
2020-01-29 15:38:27 -03:00
committed by GitHub
parent 09e8be3209
commit 2ee6a615b7
8 changed files with 107 additions and 1 deletions

View File

@@ -0,0 +1,43 @@
# frozen_string_literal: true
module Jobs
class EnqueueSuspectUsers < ::Jobs::Scheduled
every 2.hours
def execute(_args)
return unless SiteSetting.approve_suspect_users
users = AdminUserIndexQuery.new
.suspect_users
.joins("LEFT OUTER JOIN reviewables r ON r.target_id = users.id AND r.target_type = 'User'")
.where('r.id IS NULL')
.limit(10)
users.each do |user|
user_profile = user.user_profile
reviewable = ReviewableUser.needs_review!(
target: user,
created_by: Discourse.system_user,
reviewable_by_moderator: true,
payload: {
username: user.username,
name: user.name,
email: user.email,
bio: user_profile.bio_raw,
website: user_profile.website,
}
)
if reviewable.created_new
reviewable.add_score(
Discourse.system_user,
ReviewableScore.types[:needs_approval],
reason: :suspect_user,
force_review: true
)
end
end
end
end
end