diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-19 18:44:42 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-19 18:44:42 +0300 |
commit | 4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch) | |
tree | 5423a1c7516cffe36384133ade12572cf709398d /app/controllers/registrations_controller.rb | |
parent | e570267f2f6b326480d284e0164a6464ba4081bc (diff) |
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'app/controllers/registrations_controller.rb')
-rw-r--r-- | app/controllers/registrations_controller.rb | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index 61218a95add..0f29f6f608f 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -155,13 +155,21 @@ class RegistrationsController < Devise::RegistrationsController end def resource - @resource ||= Users::BuildService.new(current_user, sign_up_params).execute + @resource ||= Users::RegistrationsBuildService + .new(current_user, sign_up_params.merge({ skip_confirmation: skip_email_confirmation? })) + .execute end def devise_mapping @devise_mapping ||= Devise.mappings[:user] end + def skip_email_confirmation? + invite_email = session.delete(:invite_email) + + sign_up_params[:email] == invite_email + end + def load_recaptcha Gitlab::Recaptcha.load_configurations! end @@ -179,6 +187,21 @@ class RegistrationsController < Devise::RegistrationsController def set_invite_params @invite_email = ActionController::Base.helpers.sanitize(params[:invite_email]) end + + def after_pending_invitations_hook + member_id = session.delete(:originating_member_id) + + return unless member_id + + # if invited multiple times to different projects, only the email clicked will be counted as accepted + # for the specific member on a project or group + member = resource.members.find_by(id: member_id) # rubocop: disable CodeReuse/ActiveRecord + + return unless member + + experiment(:invite_signup_page_interaction, actor: member).track(:form_submission) + experiment('members/invite_email', actor: member).track(:accepted) + end end -RegistrationsController.prepend_if_ee('EE::RegistrationsController') +RegistrationsController.prepend_mod_with('RegistrationsController') |