class PasswordsController < Devise::PasswordsController def create self.resource = resource_class.send_reset_password_instructions(resource_params) yield resource if block_given? if successfully_sent?(resource) render(:json => {:success => true}) else render(:json => {:errors => resource.errors}, :status => 500) end end def edit self.resource = resource_class.new resource.reset_password_token = params[:reset_password_token] render("edit", :layout => "info_window") end def update self.resource = resource_class.reset_password_by_token(resource_params) yield resource if block_given? if resource.errors.empty? resource.unlock_access! if unlockable?(resource) sign_in(resource_name, resource) end redirect_to(:controller => "main", :action => "index") end private def resource_params params.require(:user).permit(:email, :password, :password_confirmation, :reset_password_token) end end