mirror of https://github.com/docusealco/docuseal
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							43 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							43 lines
						
					
					
						
							1.1 KiB
						
					
					
				# frozen_string_literal: true
 | 
						|
 | 
						|
class SessionsController < Devise::SessionsController
 | 
						|
  before_action :configure_permitted_parameters
 | 
						|
 | 
						|
  def create
 | 
						|
    email = sign_in_params[:email].to_s.downcase
 | 
						|
 | 
						|
    if Docuseal.multitenant? && !User.exists?(email:)
 | 
						|
      return redirect_to new_registration_path(sign_up: true, user: sign_in_params.slice(:email)),
 | 
						|
                         notice: 'Create a new account'
 | 
						|
    end
 | 
						|
 | 
						|
    if User.exists?(email:, otp_required_for_login: true) && sign_in_params[:otp_attempt].blank?
 | 
						|
      return render :otp, locals: { resource: User.new(sign_in_params) }, status: :unprocessable_entity
 | 
						|
    end
 | 
						|
 | 
						|
    super
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def after_sign_in_path_for(...)
 | 
						|
    if params[:redir].present?
 | 
						|
      return console_redirect_index_path(redir: params[:redir]) if params[:redir].starts_with?(Docuseal::CONSOLE_URL)
 | 
						|
 | 
						|
      return params[:redir]
 | 
						|
    end
 | 
						|
 | 
						|
    super
 | 
						|
  end
 | 
						|
 | 
						|
  def configure_permitted_parameters
 | 
						|
    devise_parameter_sanitizer.permit(:sign_in, keys: [:otp_attempt])
 | 
						|
  end
 | 
						|
 | 
						|
  def set_flash_message(key, kind, options = {})
 | 
						|
    return if key == :alert && kind == 'already_authenticated'
 | 
						|
 | 
						|
    super
 | 
						|
  end
 | 
						|
end
 |