Sha256: 97f855e2791603d433e47fe4418af308a34c096564489868d5453812b4497c0d

Contents?: true

Size: 1.83 KB

Versions: 18

Compression:

Stored size: 1.83 KB

Contents

class Clearance::SessionsController < ApplicationController
  unloadable

  skip_before_filter :authenticate, :only => [:new, :create, :destroy]
  protect_from_forgery :except => :create
  filter_parameter_logging :password

  def new
    if !signed_in? then render :template => 'sessions/new'
    else redirect_back_or(url_after_create) end
  end

  def create
    @user = ::User.authenticate(params[:session][:email], params[:session][:password])
    if @user.nil?
      flash_failure_after_create
      render :template => 'sessions/new', :status => :unauthorized
    else
      if @user.email_confirmed?
        sign_in(@user)
        flash_success_after_create
        redirect_back_or(url_after_create)
      else
        ::ClearanceMailer.deliver_confirmation(@user)
        flash_notice_after_create
        redirect_to(sign_in_url)
      end
    end
  end

  def destroy
    sign_out
    flash_success_after_destroy
    redirect_to(url_after_destroy)
  end
  
  def channel
    render :inline => '<script src="//connect.facebook.net/en_US/all.js"></script>'
  end

  private

  def flash_failure_after_create
    flash.now[:failure] = translate(:bad_email_or_password,
      :scope   => [:clearance, :controllers, :sessions],
      :default => "Bad email or password.")
  end

  def flash_success_after_create
    flash[:success] = translate(:signed_in, :default =>  "Signed in.")
  end

  def flash_notice_after_create
    flash[:notice] = translate(:unconfirmed_email,
      :scope   => [:clearance, :controllers, :sessions],
      :default => "User has not confirmed email. " <<
                  "Confirmation email will be resent.")
  end

  def url_after_create
    URL_AFTER_CREATE
  end

  def flash_success_after_destroy
    flash[:success] = translate(:signed_out, :default =>  "Signed out.")
  end

  def url_after_destroy
    sign_in_url
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
fbdoorman-0.9.3 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.9.2 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.9.1 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.9.0 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.98 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.97 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.95 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.94 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.93 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.92 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.91 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.9 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.8 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.7 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.6 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.5 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.4 app/controllers/clearance/sessions_controller.rb
fbdoorman-0.8.0.2 app/controllers/clearance/sessions_controller.rb