Sha256: e8434e6410fe0451117bcc8cd07cf57dbdeb4919e5b7a13f560cc5be636f9fc2

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

module TinyCore
  module Controllers
    module PasswordResets
      def self.included(receiver)
        receiver.before_filter :load_user_using_perishable_token, :only => [:edit, :update]
        receiver.before_filter :guest_required
      end

      def index
        render
      end

      def new
        render
      end

      def create
        @user = User.find_by_email(params[:email])
        if @user
          @user.deliver_password_reset_instructions!
          flash[:notice] = I18n.t("flash.notice.password_instructions_sent")
          redirect_to password_resets_path
        else
          flash[:error] = I18n.t("flash.error.user_by_email_not_found")
          render :action => :new
        end
      end

      def edit
        render
      end

      def update
        if @user.reset_password!(params[:user][:password], params[:user][:password_confirmation])
          flash[:notice] = I18n.t("flash.notice.password_updated")
          redirect_to root_path
        else
          render :action => :edit
        end
      end

    private
      def load_user_using_perishable_token
        @user = User.find_using_perishable_token(params[:id])
        unless @user
          flash[:error] = I18n.t("flash.error.user_could_not_be_located")
          redirect_to login_path
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tiny_core_users-0.0.1 lib/tiny_core/controllers/password_resets.rb