FEATURE: Add site setting to disable staged user cleanup
... and disabled the cleanup during imports, otherwise a running Sidekiq might delete users before posts are created
This commit is contained in:
parent
60b47d622e
commit
edc8d58ac3
|
@ -6,12 +6,15 @@ module Jobs
|
||||||
every 1.day
|
every 1.day
|
||||||
|
|
||||||
def execute(args)
|
def execute(args)
|
||||||
|
clean_up_after_days = SiteSetting.clean_up_unused_staged_users_after_days
|
||||||
|
return if clean_up_after_days <= 0
|
||||||
|
|
||||||
destroyer = UserDestroyer.new(Discourse.system_user)
|
destroyer = UserDestroyer.new(Discourse.system_user)
|
||||||
|
|
||||||
User.joins("LEFT JOIN posts ON posts.user_id = users.id")
|
User.joins("LEFT JOIN posts ON posts.user_id = users.id")
|
||||||
.where("posts.user_id IS NULL")
|
.where("posts.user_id IS NULL")
|
||||||
.where(staged: true, admin: false, moderator: false)
|
.where(staged: true, admin: false, moderator: false)
|
||||||
.where("users.created_at < ?", 1.year.ago)
|
.where("users.created_at < ?", clean_up_after_days.days.ago)
|
||||||
.find_each do |user|
|
.find_each do |user|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -1992,6 +1992,7 @@ en:
|
||||||
ignored_users_message_gap_days: "How long to wait before notifying moderators again about a user who has been ignored by many others."
|
ignored_users_message_gap_days: "How long to wait before notifying moderators again about a user who has been ignored by many others."
|
||||||
|
|
||||||
clean_up_inactive_users_after_days: "Number of days before an inactive user (trust level 0 without any posts) is removed. To disable clean up set to 0."
|
clean_up_inactive_users_after_days: "Number of days before an inactive user (trust level 0 without any posts) is removed. To disable clean up set to 0."
|
||||||
|
clean_up_unused_staged_users_after_days: "Number of days before an unused staged user (without any posts) is removed. To disable clean up set to 0."
|
||||||
|
|
||||||
user_selected_primary_groups: "Allow users to set their own primary group"
|
user_selected_primary_groups: "Allow users to set their own primary group"
|
||||||
|
|
||||||
|
|
|
@ -589,6 +589,10 @@ users:
|
||||||
default: 730
|
default: 730
|
||||||
min: 0
|
min: 0
|
||||||
max: 3650
|
max: 3650
|
||||||
|
clean_up_unused_staged_users_after_days:
|
||||||
|
default: 365
|
||||||
|
min: 0
|
||||||
|
max: 3650
|
||||||
user_selected_primary_groups:
|
user_selected_primary_groups:
|
||||||
default: false
|
default: false
|
||||||
client: true
|
client: true
|
||||||
|
|
|
@ -81,7 +81,9 @@ class ImportScripts::Base
|
||||||
disable_emails: 'yes',
|
disable_emails: 'yes',
|
||||||
max_attachment_size_kb: 102400,
|
max_attachment_size_kb: 102400,
|
||||||
max_image_size_kb: 102400,
|
max_image_size_kb: 102400,
|
||||||
authorized_extensions: '*'
|
authorized_extensions: '*',
|
||||||
|
clean_up_inactive_users_after_days: 0,
|
||||||
|
clean_up_unused_staged_users_after_days: 0
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,11 @@ RSpec.describe Jobs::CleanUpUnusedStagedUsers do
|
||||||
before { staged_user.update!(moderator: true) }
|
before { staged_user.update!(moderator: true) }
|
||||||
include_examples "does not delete"
|
include_examples "does not delete"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when job is disabled" do
|
||||||
|
before { SiteSetting.clean_up_unused_staged_users_after_days = 0 }
|
||||||
|
include_examples "does not delete"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when staged user is not old enough' do
|
context 'when staged user is not old enough' do
|
||||||
|
|
Loading…
Reference in New Issue