Sha256: 8ec6249bcf2ff387cd0b1cdf5f4308caff767dc2d18ef7b3705fa4defe66fdc5

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

module Omnisocial
  class AuthController < ApplicationController

    unloadable

    def new
      if current_user?
        flash[:notice] = 'You are already signed in. Please sign out if you want to sign in as a different user.'
        redirect_to(root_path)
      end
    end

    def callback
      account = case request.env['rack.auth']['provider']
        when 'twitter' then
          Omnisocial::TwitterAccount.find_or_create_from_auth_hash(request.env['rack.auth'])
        when 'facebook' then
          Omnisocial::FacebookAccount.find_or_create_from_auth_hash(request.env['rack.auth'])
        when 'linked_in' then
          Omnisocial::LinkedInAccount.find_or_create_from_auth_hash(request.env['rack.auth'])
      end

      self.current_user = account.find_or_create_user

      flash[:notice] = 'You have logged in successfully.'
      redirect_back_or_default(root_path)
    end

    def failure
      flash[:error] = "We had trouble signing you in. Did you make sure to grant access? Please select a service below and try again."
      render :action => 'new'
    end

    def destroy
      logout!
      redirect_to(root_path)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
elecnix-omnisocial-0.1.5 app/controllers/omnisocial/auth_controller.rb