Class: Searls::Auth::EmailVerificationsController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/searls/auth/email_verifications_controller.rb

Instance Method Summary collapse

Methods inherited from BaseController

#forwardable_params

Instance Method Details

#resendObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/controllers/searls/auth/email_verifications_controller.rb', line 4

def resend
  user = if session[:user_id].present?
    Searls::Auth.config.user_finder_by_id.call(session[:user_id])
  elsif session[:searls_auth_pending_email].present?
    Searls::Auth.config.user_finder_by_email.call(session[:searls_auth_pending_email])
  end

  if user.blank? || Searls::Auth.config.email_verification_mode == :none
    flash[:alert] = Searls::Auth.config.resolve(:flash_error_after_verify_attempt_invalid_link, params)
  else
    EmailsVerification.new.email(user: user, **forwardable_params)
    flash[:notice] = Searls::Auth.config.resolve(:flash_notice_after_verification_email_resent, params)
  end

  if session[:user_id].present?
    redirect_to searls_auth.verify_path
  else
    fallback = if session[:searls_auth_pending_email].present?
      searls_auth.pending_email_verification_path({
        email: session[:searls_auth_pending_email],
        redirect_path: session[:searls_auth_pending_redirect_path],
        redirect_subdomain: session[:searls_auth_pending_redirect_subdomain]
      }.compact_blank)
    else
      searls_auth.
    end
    redirect_back fallback_location: fallback
  end
end

#showObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'app/controllers/searls/auth/email_verifications_controller.rb', line 34

def show
  user = Searls::Auth.config.user_finder_by_token.call(params[:token])

  if user.present?
    unless Searls::Auth.config.email_verified_predicate.call(user)
      Searls::Auth.config.email_verified_setter.call(user)
    end

    flash[:notice] = Searls::Auth.config.resolve(:flash_notice_after_email_verified, user, params)

    Searls::Auth.config..call(user)
    session[:user_id] = user.id
    session[:has_logged_in_before] = true

    (user)
  else
    flash[:alert] = Searls::Auth.config.resolve(:flash_error_after_verify_attempt_invalid_link, params)

    redirect_to searls_auth.(**forwardable_params)
  end
end