• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mgmodell / devise_token_auth_multi_email / #12260

08 Apr 2026 01:28PM UTC coverage: 13.721% (-10.8%) from 24.549%
#12260

push

GitHub
Add model tests for MultiEmailUser and MultiEmailUserEmail

229 of 1669 relevant lines covered (13.72%)

0.55 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/app/controllers/devise_token_auth/confirmations_controller.rb
1
# frozen_string_literal: true
2

3
module DeviseTokenAuth
×
4
  class ConfirmationsController < DeviseTokenAuth::ApplicationController
×
5

6
    def show
×
7
      @resource = resource_class.confirm_by_token(resource_params[:confirmation_token])
×
8

9
      if @resource.errors.empty?
×
10
        yield @resource if block_given?
×
11

12
        redirect_header_options = { account_confirmation_success: true }
×
13

14
        if signed_in?(resource_name)
×
15
          token = signed_in_resource.create_token
×
16
          signed_in_resource.save!
×
17

18
          redirect_headers = build_redirect_headers(token.token,
×
19
                                                    token.client,
×
20
                                                    redirect_header_options)
×
21

22
          redirect_to_link = signed_in_resource.build_auth_url(redirect_url, redirect_headers)
×
23
        else
×
24
          redirect_to_link = DeviseTokenAuth::Url.generate(redirect_url, redirect_header_options)
×
25
        end
×
26

27
        redirect_to(redirect_to_link, redirect_options)
×
28
      else
×
29
        if redirect_url
×
30
          redirect_to DeviseTokenAuth::Url.generate(redirect_url, account_confirmation_success: false), redirect_options
×
31
        else
×
32
          raise ActionController::RoutingError, 'Not Found'
×
33
        end
×
34
      end
×
35
    end
×
36

37
    def create
×
38
      return render_create_error_missing_email if resource_params[:email].blank?
×
39

40
      @email = get_case_insensitive_field_from_resource_params(:email)
×
41

42
      @resource = resource_class.dta_find_by(uid: @email, provider: provider)
×
43

44
      return render_not_found_error unless @resource
×
45

46
      @resource.send_confirmation_instructions({
×
47
        redirect_url: redirect_url,
×
48
        client_config: resource_params[:config_name]
×
49
      })
×
50

51
      return render_create_success
×
52
    end
×
53

54
    protected
×
55

56
    def render_create_error_missing_email
×
57
      render_error(401, I18n.t('devise_token_auth.confirmations.missing_email'))
×
58
    end
×
59

60
    def render_create_success
×
61
      render json: {
×
62
               success: true,
×
63
               message: success_message('confirmations', @email)
×
64
             }
×
65
    end
×
66

67
    def render_not_found_error
×
68
      if Devise.paranoid
×
69
        render_create_success
×
70
      else
×
71
        render_error(404, I18n.t('devise_token_auth.confirmations.user_not_found', email: @email))
×
72
      end
×
73
    end
×
74

75
    private
×
76

77
    def resource_params
×
78
      params.permit(:email, :confirmation_token, :config_name)
×
79
    end
×
80

81
    # give redirect value from params priority or fall back to default value if provided
82
    def redirect_url
×
83
      params.fetch(
×
84
        :redirect_url,
×
85
        DeviseTokenAuth.default_confirm_success_url
×
86
      )
×
87
    end
×
88
  end
×
89
end
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc