diff options
-rw-r--r-- | app/controllers/profiles/emails_controller.rb | 2 | ||||
-rw-r--r-- | app/models/user.rb | 2 | ||||
-rw-r--r-- | app/services/emails/create_service.rb | 2 | ||||
-rw-r--r-- | lib/api/users.rb | 10 |
4 files changed, 7 insertions, 9 deletions
diff --git a/app/controllers/profiles/emails_controller.rb b/app/controllers/profiles/emails_controller.rb index 9159c217f1b..40b43278439 100644 --- a/app/controllers/profiles/emails_controller.rb +++ b/app/controllers/profiles/emails_controller.rb @@ -7,7 +7,7 @@ class Profiles::EmailsController < Profiles::ApplicationController def create @email = current_user.emails.new(email_params) - if @email.save + if Emails::CreateService.new(current_user, current_user, email_params).execute NotificationService.new.new_email(@email) else flash[:alert] = @email.errors.full_messages.first diff --git a/app/models/user.rb b/app/models/user.rb index bc754768ab1..6ca78278db8 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -495,7 +495,7 @@ class User < ActiveRecord::Base primary_email_record = emails.find_by(email: email) if primary_email_record Emails::DestroyService.new(self, self, email: email).execute - emails.create(email: email_was) + Emails::CreateService.new(self, self, email: email_was).execute update_secondary_emails! end diff --git a/app/services/emails/create_service.rb b/app/services/emails/create_service.rb index 95e226ec710..ea65b82e418 100644 --- a/app/services/emails/create_service.rb +++ b/app/services/emails/create_service.rb @@ -3,7 +3,7 @@ module Emails def execute(skip_authorization: false) raise Gitlab::Access::AccessDeniedError unless skip_authorization || can_manage_emails? - @user.emails.create!(email: @email) + @user.emails.create(email: @email) end end end diff --git a/lib/api/users.rb b/lib/api/users.rb index 940f8b64026..190e2e71884 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -98,7 +98,7 @@ module API authenticated_as_admin! params = declared_params(include_missing: false) - user = ::Users::CreateService.new(current_user, params).execute + user = ::Users::CreateService.new(current_user, params).execute(skip_authorization: true) if user.persisted? present user, with: Entities::UserPublic @@ -236,9 +236,7 @@ module API user = User.find_by(id: params.delete(:id)) not_found!('User') unless user - email = user.emails.new(declared_params(include_missing: false)) - - if email.save + if Emails::CreateService.new(current_user, user, declared_params(include_missing: false)).execute(skip_authorization: true) NotificationService.new.new_email(email) present email, with: Entities::Email else @@ -276,7 +274,7 @@ module API email = user.emails.find_by(id: params[:email_id]) not_found!('Email') unless email - Emails::DestroyService.new(current_user, user, email: email.email).execute + Emails::DestroyService.new(current_user, user, email: email.email).execute(skip_authorization: true) ::Users::UpdateService.new(current_user, user).execute do |user| user.update_secondary_emails! @@ -494,7 +492,7 @@ module API post "emails" do email = current_user.emails.new(declared_params) - if email.save + if Emails::CreateService.new(current_user, current_user, declared_params).execute NotificationService.new.new_email(email) present email, with: Entities::Email else |