Sha256: 4d04cee3e8a539074630144e24352b7ce80043ecb570f767178f8a893c9ab4ab

Contents?: true

Size: 1.66 KB

Versions: 1

Compression:

Stored size: 1.66 KB

Contents

# coding: utf-8
module Catarse
class SessionsController < BaseController

  skip_before_filter :detect_locale

  def auth
    session[:return_to] = params[:return_to]
    session[:remember_me] = params[:remember_me]
    redirect_to "/auth/#{params[:provider]}"
  end

  def create
    auth = request.env["omniauth.auth"]
    user = User.find_with_omni_auth(auth["provider"], auth["uid"].to_s)
    unless user
      user = User.create_with_omniauth(auth)
      if session[:return_to].nil? or session[:return_to].empty?
        session[:return_to] = user_path(user)
      end
    end
    session[:user_id] = user.id
    if session[:remember_me]
      cookies[:remember_me_id] = { :value => user.id, :expires => 30.days.from_now }
      cookies[:remember_me_hash] = { :value => user.remember_me_hash, :expires => 30.days.from_now }
    end
    flash[:success] = t('catarse.sessions.auth.success', :name => user.display_name)
    redirect_back_or_default :root
  end

  def destroy
    return redirect_to destroy_user_session_path if current_user and current_user.provider == 'devise'
    session[:user_id] = nil
    cookies.delete :remember_me_id if cookies[:remember_me_id]
    cookies.delete :remember_me_hash if cookies[:remember_me_hash]
    flash[:success] = t('catarse.sessions.destroy.success')
    redirect_to :root
  end

  def failure
    flash[:failure] = t('catarse.sessions.failure.error')
    redirect_to :root
  end

  def fake_create
    raise "Forbiden" unless Rails.env == "test"
    user = Factory(:user, :uid => 'fake_login')
    session[:user_id] = user.id
    flash[:success] = t('catarse.sessions.auth.success', :name => user.display_name)
    redirect_to :root
  end

end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
catarse_core-1.0.0.beta app/controllers/catarse/sessions_controller.rb