0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-29 12:20:27 +01:00
discourse-custom-wizard/controllers/application_controller.rb

29 Zeilen
992 B
Ruby

2019-12-12 00:53:13 +01:00
module CustomWizardApplicationControllerExtension
2019-12-05 09:05:21 +01:00
extend ActiveSupport::Concern
2019-12-12 00:53:13 +01:00
def self.prepended(klass)
klass.class_eval do
before_action :redirect_to_wizard_if_required, if: :current_user
end
2019-12-05 09:05:21 +01:00
end
def redirect_to_wizard_if_required
wizard_id = current_user.custom_fields['redirect_to_wizard']
@excluded_routes ||= SiteSetting.wizard_redirect_exclude_paths.split('|') + ['/w/']
url = request.referer || request.original_url
if request.format === 'text/html' && !@excluded_routes.any? {|str| /#{str}/ =~ url} && wizard_id
if request.referer !~ /\/w\// && request.referer !~ /\/invites\//
CustomWizard::Wizard.set_submission_redirect(current_user, wizard_id, request.referer)
end
if CustomWizard::Wizard.exists?(wizard_id)
redirect_to "/w/#{wizard_id.dasherize}"
end
end
end
end
class ApplicationController
2019-12-12 00:53:13 +01:00
prepend CustomWizardApplicationControllerExtension if SiteSetting.custom_wizard_enabled
2019-12-05 09:05:21 +01:00
end