From 17ba9976c0aab39a1a5691c1852b590b38fd6475 Mon Sep 17 00:00:00 2001 From: Angus McLeod Date: Tue, 5 Jun 2018 12:25:44 +1000 Subject: [PATCH] Add redirect on signup for approved users --- plugin.rb | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/plugin.rb b/plugin.rb index 8ee425d6..addcc313 100644 --- a/plugin.rb +++ b/plugin.rb @@ -88,11 +88,10 @@ after_initialize do if Wizard.user_requires_completion?(@user) wizard_id = $redis.get('custom_wizard_redirect') - unless url === '/' + if wizard_id && url != '/' CustomWizard::Wizard.set_redirect(@user, wizard_id, url) + url = "/w/#{wizard_id.dasherize}" end - - url = "/w/#{wizard_id.dasherize}" end super(url) end @@ -116,8 +115,11 @@ after_initialize do @excluded_routes ||= SiteSetting.wizard_redirect_exclude_paths.split('|') + ['/w/'] url = request.referer || request.original_url - if @wizard_id && request.format === 'text/html' && !@excluded_routes.any? { |str| /#{str}/ =~ url } - CustomWizard::Wizard.set_redirect(current_user, @wizard_id, request.referer) if request.referer !~ /\/w\// + if request.format === 'text/html' && !@excluded_routes.any? { |str| /#{str}/ =~ url } && @wizard_id + if request.referer !~ /\/w\// && request.referer !~ /\/invites\// + CustomWizard::Wizard.set_redirect(current_user, @wizard_id, request.referer) + end + redirect_to "/w/#{@wizard_id.dasherize}" end end @@ -144,5 +146,12 @@ after_initialize do end end + DiscourseEvent.on(:user_approved) do |user| + if wizard_id = CustomWizard::Wizard.after_signup + user.custom_fields['redirect_to_wizard'] = wizard_id + user.save_custom_fields(true) + end + end + DiscourseEvent.trigger(:custom_wizard_ready) end