update missing email actions
This commit is contained in:
		
							parent
							
								
									87bf08c96c
								
							
						
					
					
						commit
						831b2fccf9
					
				| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue