Sha256: 59ca71d5bafbe5054347db04892196c6b50f404fb4c549bc3726317d99250d9b

Contents?: true

Size: 1.42 KB

Versions: 2

Compression:

Stored size: 1.42 KB

Contents

# This controller handles the login/logout function of the site.
class Admin::PersonSessionsController < Admin::BaseController
  layout 'admin_login'
  skip_before_filter :login_required, :only => [ :new, :create, :reset_password ]
  def new
    @person_session = PersonSession.new
  end

  def create
    @person_session = PersonSession.new(params[:person_session])
    if @person_session.save
      flash[:notice] = t('log.in.success').capitalize
    else
      flash[:error] = t('log.in.failed').capitalize
    end

    redirect_to_stored_location([forgeos_core, :admin, :root])
  end

  def destroy
    current_user_session.destroy
    flash[:notice] = t('log.out.success').capitalize
  end

  def reset_password
    user = Administrator.find_by_email(params[:email])
    if user
      generated_password = generate_password(8)
      if user.update_attributes(:password => generated_password, :password_confirmation => generated_password)
        UserNotifier.deliver_reset_password(user,generated_password)
        flash[:notice] = t('admin.reset_password.success').capitalize
      else
        flash[:error] = t('admin.reset_password.failed').capitalize
      end
    else
      flash[:error] = t('admin.not_exist').capitalize
    end
    redirect_to :action => 'new'
  end

private
  def generate_password(size)
    s = ""
    size.times { s << (i = Kernel.rand(62); i += ((i < 10) ? 48 : ((i < 36) ? 55 : 61 ))).chr }
    return s
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
forgeos_core-1.9.4 app/controllers/admin/person_sessions_controller.rb
forgeos_core-1.9.3 app/controllers/admin/person_sessions_controller.rb