mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Send suspect users to the review queue (#8811)
This commit is contained in:
43
app/jobs/scheduled/enqueue_suspect_users.rb
Normal file
43
app/jobs/scheduled/enqueue_suspect_users.rb
Normal 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
|
||||
Reference in New Issue
Block a user