Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/registrations/welcome_controller.rb')
-rw-r--r--app/controllers/registrations/welcome_controller.rb53
1 files changed, 22 insertions, 31 deletions
diff --git a/app/controllers/registrations/welcome_controller.rb b/app/controllers/registrations/welcome_controller.rb
index 76aa4afbe80..76f181e3ce8 100644
--- a/app/controllers/registrations/welcome_controller.rb
+++ b/app/controllers/registrations/welcome_controller.rb
@@ -7,10 +7,10 @@ module Registrations
include ::Gitlab::Utils::StrongMemoize
layout 'minimal'
- skip_before_action :authenticate_user!, :required_signup_info, :check_two_factor_requirement, only: [:show, :update]
- before_action :require_current_user
+ skip_before_action :required_signup_info, :check_two_factor_requirement
helper_method :welcome_update_params
+ helper_method :onboarding_status
feature_category :user_management
@@ -25,7 +25,7 @@ module Registrations
if result.success?
track_event('successfully_submitted_form')
- finish_onboarding_on_welcome_page unless complete_signup_onboarding?
+ successful_update_hooks
redirect_to update_success_path
else
@@ -35,14 +35,10 @@ module Registrations
private
- def registering_from_invite?(members)
- # If there are more than one member it will mean we have been invited to multiple projects/groups and
- # are not able to distinguish which one we should putting the user in after registration
- members.count == 1 && members.last.source.present?
- end
+ def authenticate_user!
+ return if current_user
- def require_current_user
- return redirect_to new_user_registration_path unless current_user
+ redirect_to new_user_registration_path
end
def completed_welcome_step?
@@ -54,33 +50,28 @@ module Registrations
end
def path_for_signed_in_user(user)
- stored_location_for(user) || members_activity_path(user.members)
- end
-
- def members_activity_path(members)
- return dashboard_projects_path unless members.any?
- return dashboard_projects_path unless members.last.source.present?
-
- members.last.source.activity_path
+ stored_location_for(user) || last_member_activity_path
end
# overridden in EE
def complete_signup_onboarding?
- false
+ onboarding_status.continue_full_onboarding?
end
- def invites_with_tasks_to_be_done?
- MemberTask.for_members(user_members).exists?
+ def last_member_activity_path
+ return dashboard_projects_path unless onboarding_status.last_invited_member_source.present?
+
+ onboarding_status.last_invited_member_source.activity_path
end
def update_success_path
- if invites_with_tasks_to_be_done?
+ if onboarding_status.invite_with_tasks_to_be_done?
issues_dashboard_path(assignee_username: current_user.username)
elsif complete_signup_onboarding? # trials/regular registration on .com
signup_onboarding_path
- elsif registering_from_invite?(user_members) # invites w/o tasks due to order
- flash[:notice] = helpers.invite_accepted_notice(user_members.last)
- members_activity_path(user_members)
+ elsif onboarding_status.single_invite? # invites w/o tasks due to order
+ flash[:notice] = helpers.invite_accepted_notice(onboarding_status.last_invited_member)
+ onboarding_status.last_invited_member_source.activity_path
else
# Subscription registrations goes through here as well.
# Invites will come here too if there is more than 1.
@@ -88,13 +79,8 @@ module Registrations
end
end
- def user_members
- current_user.members
- end
- strong_memoize_attr :user_members
-
# overridden in EE
- def finish_onboarding_on_welcome_page; end
+ def successful_update_hooks; end
# overridden in EE
def signup_onboarding_path; end
@@ -106,6 +92,11 @@ module Registrations
def welcome_update_params
{}
end
+
+ def onboarding_status
+ Onboarding::Status.new(current_user)
+ end
+ strong_memoize_attr :onboarding_status
end
end