Files

Oauth::Controllers::ConsumerController

Public Class Methods

included(controller) click to toggle source
    # File lib/oauth/controllers/consumer_controller.rb, line 4
 4:       def self.included(controller)
 5:         controller.class_eval do  
 6:           before_filter :login_required
 7:           before_filter :load_consumer, :except=>:index
 8:           skip_before_filter :verify_authenticity_token,:only=>:callback
 9:         end
10:       end

Public Instance Methods

callback() click to toggle source
    # File lib/oauth/controllers/consumer_controller.rb, line 33
33:       def callback
34:         @request_token_secret=session[params[:oauth_token]]
35:         if @request_token_secret
36:           @token=@consumer.create_from_request_token(current_user,params[:oauth_token],@request_token_secret,params[:oauth_verifier])
37:           if @token
38:             flash[:notice] = "#{params[:id].humanize} was successfully connected to your account"
39:             go_back
40:           else
41:             flash[:error] = "An error happened, please try connecting again"
42:             redirect_to oauth_consumer_url(params[:id])
43:           end
44:         end
45: 
46:       end
destroy() click to toggle source
    # File lib/oauth/controllers/consumer_controller.rb, line 48
48:       def destroy
49:         throw RecordNotFound unless @token
50:         @token.destroy
51:         if params[:commit]=="Reconnect"
52:           redirect_to oauth_consumer_url(params[:id])
53:         else
54:           flash[:notice] = "#{params[:id].humanize} was successfully disconnected from your account"
55:           
56:           go_back
57:         end
58:       end
index() click to toggle source
    # File lib/oauth/controllers/consumer_controller.rb, line 12
12:       def index
13:         @consumer_tokens=ConsumerToken.all :conditions=>{:user_id=>current_user.id}
14:         # The services the user hasn't already connected to
15:         @services=OAUTH_CREDENTIALS.keys-@consumer_tokens.collect{|c| c.class.service_name}
16:       end
show() click to toggle source

creates request token and redirects on to oauth provider’s auth page If user is already connected it displays a page with an option to disconnect and redo

    # File lib/oauth/controllers/consumer_controller.rb, line 21
21:       def show
22:         unless @token
23:           @request_token=@consumer.get_request_token(callback_oauth_consumer_url(params[:id]))
24:           session[@request_token.token]=@request_token.secret
25:           if @request_token.callback_confirmed?
26:             redirect_to @request_token.authorize_url
27:           else
28:             redirect_to(@request_token.authorize_url + "&oauth_callback=#{callback_oauth_consumer_url(params[:id])}")
29:           end
30:         end
31:       end

Protected Instance Methods

go_back() click to toggle source

Override this in your controller to decide where you want to redirect user to after callback is finished.

    # File lib/oauth/controllers/consumer_controller.rb, line 63
63:       def go_back
64:         redirect_to root_url
65:       end
load_consumer() click to toggle source
    # File lib/oauth/controllers/consumer_controller.rb, line 67
67:       def load_consumer
68:         consumer_key=params[:id].to_sym
69:         throw RecordNotFound unless OAUTH_CREDENTIALS.include?(consumer_key)
70:         @consumer="#{consumer_key.to_s.camelcase}Token".constantize
71:         @token=@consumer.find_by_user_id current_user.id
72:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.