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:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
commit4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch)
tree5423a1c7516cffe36384133ade12572cf709398d /app/controllers/registrations_controller.rb
parente570267f2f6b326480d284e0164a6464ba4081bc (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.rb27
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')