Class TwitterSessionsController
In: app/controllers/twitter_sessions_controller.rb
Parent: ApplicationController

Methods

create   finalize  

Public Instance methods

[Source]

    # File app/controllers/twitter_sessions_controller.rb, line 3
 3:   def create
 4:     oauth.set_callback_url(finalize_twitter_session_url)
 5:     
 6:     session['rtoken']  = oauth.request_token.token
 7:     session['rsecret'] = oauth.request_token.secret
 8: 
 9:     session[:return_to] = params[:return_to] || request.env['HTTP_REFERER']
10:     redirect_to oauth.request_token.authorize_url
11:   end

def destroy

  reset_session
  redirect_to new_session_path

end

[Source]

    # File app/controllers/twitter_sessions_controller.rb, line 18
18:   def finalize
19:       oauth.authorize_from_request(session['rtoken'], session['rsecret'], params[:oauth_verifier])
20:       session['rtoken']  = nil
21:       session['rsecret'] = nil
22:     
23:       profile = Twitter::Base.new(oauth).verify_credentials
24:       profile_attrs = {:atoken => oauth.access_token.token, 
25:         :asecret => oauth.access_token.secret,
26:         :name => profile.name,
27:         :screen_name => profile.screen_name,
28:         :raw_location => profile.location, 
29:         :url => "http://www.twitter.com/#{profile.screen_name}"}
30:         
31:       user = Person.find_or_initialize_by_screen_name(profile.screen_name)
32:       
33:       if user.new_record?
34:         user.update_attributes(profile_attrs.merge({:status => "aprobado"}))
35:         self.current_user = user
36:         flash[:notice] = t('session.Has_entrado', :name => current_user.name)
37:         redirect_back_or_default(root_path) and return
38:       else
39:         user.update_attributes(profile_attrs)
40:         if user.status.eql?("pendiente")
41:           render :template => "/sessions/waiting_for_approval" and return
42:         elsif user.status.eql?("vetado")
43:           flash[:notice] = "Este usuario ha sido eliminado"
44:           redirect_to root_path and return
45:         else
46:           self.current_user = user
47:           flash[:notice] = t('session.Has_entrado', :name => current_user.name)
48:           redirect_back_or_default(root_path) and return
49:         end
50:         session[:return_to] = nil
51:       end
52:   end

[Validate]