diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-07-19 17:16:28 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-07-19 17:16:28 +0300 |
commit | e4384360a16dd9a19d4d2d25d0ef1f2b862ed2a6 (patch) | |
tree | 2fcdfa7dcdb9db8f5208b2562f4b4e803d671243 /app/controllers/registrations | |
parent | ffda4e7bcac36987f936b4ba515995a6698698f0 (diff) |
Add latest changes from gitlab-org/gitlab@16-2-stable-eev16.2.0-rc42
Diffstat (limited to 'app/controllers/registrations')
-rw-r--r-- | app/controllers/registrations/welcome_controller.rb | 53 |
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 |