mirror of
https://github.com/discourse/discourse.git
synced 2026-08-06 13:08:40 +08:00
**Previously**, nothing was recorded when an admin completed or dismissed the onboarding panel. Because `enable_site_owner_onboarding` is a hidden setting, `SiteSetting#log` skipped it too, so there was no audit trail for how admins moved through the guide. **In this update**, each step completion, full onboarding completion, and panel dismissal writes a dedicated `UserHistory` staff action. | Before | After | | --- | --- | |  |  |
24 lines
686 B
Ruby
Vendored
24 lines
686 B
Ruby
Vendored
# frozen_string_literal: true
|
|
|
|
class Admin::OnboardingEventsController < Admin::AdminController
|
|
STEPS = %w[select_theme invite_collaborators start_posting].freeze
|
|
|
|
def create
|
|
logger = StaffActionLogger.new(current_user)
|
|
|
|
case params.require(:event)
|
|
when "step_completed"
|
|
step = params.require(:step)
|
|
raise Discourse::InvalidParameters.new(:step) if !STEPS.include?(step)
|
|
logger.log_admin_onboarding_step_completed(step)
|
|
when "completed"
|
|
logger.log_admin_onboarding_completed
|
|
when "dismissed"
|
|
logger.log_admin_onboarding_dismissed
|
|
else
|
|
raise Discourse::InvalidParameters.new(:event)
|
|
end
|
|
|
|
head :no_content
|
|
end
|
|
end
|