Class: Omnisocial::AuthController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- Omnisocial::AuthController
- Defined in:
- app/controllers/omnisocial/auth_controller.rb
Instance Method Summary collapse
Instance Method Details
#callback ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/controllers/omnisocial/auth_controller.rb', line 13 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']) end if current_user && @account.user != current_user @account.update_attributes(:user => current_user) end if @account.user self.current_user = @account.user flash[:message] = 'You have logged in successfully.' redirect_back_or_default(root_path) else @user = User.new(:display_name => @account.name) end end |
#confirm ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/controllers/omnisocial/auth_controller.rb', line 32 def confirm @account = Omnisocial::LoginAccount.find(params[:account_id]) @user = User.new(params[:omnisocial_user].merge(:picture_url => @account.picture_url)) if @user.save @account.update_attributes(:user => @user) self.current_user = @user flash[:message] = 'You have logged in successfully.' redirect_back_or_default(root_path) else render :action => "callback" end end |
#destroy ⇒ Object
50 51 52 53 |
# File 'app/controllers/omnisocial/auth_controller.rb', line 50 def destroy logout! redirect_to(session['return_to'] || root_path) end |
#failure ⇒ Object
45 46 47 48 |
# File 'app/controllers/omnisocial/auth_controller.rb', line 45 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 |
#new ⇒ Object
6 7 8 9 10 11 |
# File 'app/controllers/omnisocial/auth_controller.rb', line 6 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 |