discourse/app/jobs/regular/enable_bootstrap_mode.rb
Vinoth Kannan 9d88f80f26
UX: make first admin a moderator to review user approvals. (#26588)
Previously, when the new site was created and after the first admin login, no one will receive notifications to review the user approval queue since only the moderators would receive the PMs about it. Also, this PR will change the "pending_users_reminder_delay_minutes" site setting to 5 minutes while the site is in bootstrap mode.
2024-04-10 20:59:03 +05:30

35 lines
1.0 KiB
Ruby

# frozen_string_literal: true
module Jobs
class EnableBootstrapMode < ::Jobs::Base
sidekiq_options queue: "critical"
def execute(args)
raise Discourse::InvalidParameters.new(:user_id) if !args[:user_id].present?
return if SiteSetting.bootstrap_mode_enabled
user = User.find_by(id: args[:user_id])
return if !user.is_singular_admin?
user.grant_moderation!
StaffActionLogger.new(Discourse.system_user).log_grant_moderation(user)
# let's enable bootstrap mode settings
if SiteSetting.default_trust_level == TrustLevel[0]
SiteSetting.set_and_log("default_trust_level", TrustLevel[1])
end
if SiteSetting.default_email_digest_frequency == 10_080
SiteSetting.set_and_log("default_email_digest_frequency", 1440)
end
if SiteSetting.pending_users_reminder_delay_minutes == 480
SiteSetting.set_and_log("pending_users_reminder_delay_minutes", 5)
end
SiteSetting.set_and_log("bootstrap_mode_enabled", true)
end
end
end