# frozen_string_literal: true class RegistrationsController < Devise::RegistrationsController prepend_before_action :check_captcha, only: [:create] def create existing_user = User.find_by(email: sign_up_params[:email]) if existing_user flash[:notice] = 'An account with this email already exists. Please reset your password to sign in.' redirect_to new_user_password_path(user: { email: sign_up_params[:email] }) return end super end protected def after_update_path_for(resource) edit_user_registration_path(resource) end def after_sign_up_path_for(resource) edit_user_registration_path(resource) end private def sign_up_params params.require(:user).permit( :email, :password, :password_confirmation, :name, :username ) end def account_update_params user_attributes = [:email, :name, :password, :password_confirmation, :current_password, :email_public] user_attributes << :is_admin if current_user.is_admin? params.require(:user).permit(user_attributes) end def check_captcha unless Feature.inactive?(:recaptcha) || verify_recaptcha self.resource = resource_class.new sign_up_params resource.validate # Look for any other validation errors besides Recaptcha respond_with_navigational(resource) { render :new } end end end