2017-06-16 09:06:14 -04:00
|
|
|
module Emails
|
2017-06-19 08:51:46 -04:00
|
|
|
class DestroyService < ::Emails::BaseService
|
2017-06-16 09:06:14 -04:00
|
|
|
def execute(skip_authorization: false)
|
|
|
|
raise Gitlab::Access::AccessDeniedError unless skip_authorization || can_manage_emails?
|
|
|
|
|
2017-06-22 02:55:07 -04:00
|
|
|
Email.find_by_email(@email).destroy && update_secondary_emails!
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def update_secondary_emails!
|
|
|
|
result = ::Users::UpdateService.new(@current_user, @current_user).execute do |user|
|
|
|
|
user.update_secondary_emails!
|
|
|
|
end
|
|
|
|
|
|
|
|
result[:status] == 'success'
|
2017-06-16 09:06:14 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|