Skip to content

Commit

Permalink
This should fix issue with mongoid consumer_token. It isn't well tested
Browse files Browse the repository at this point in the history
please report back.
  • Loading branch information
pelle committed Jan 5, 2011
1 parent 802910b commit f805e8c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
4 changes: 4 additions & 0 deletions generators/oauth_consumer/templates/controller.rb
Expand Up @@ -7,6 +7,10 @@ def index
@services=OAUTH_CREDENTIALS.keys-@consumer_tokens.collect{|c| c.class.service_name}
end

def callback
super
end

protected

# Change this to decide where you want to redirect user to after callback is finished.
Expand Down
Expand Up @@ -18,20 +18,21 @@ class ConsumerToken
# index "consumer_tokens.token"
#
embedded_in :user, :inverse_of => :consumer_tokens

def self.find_or_create_from_access_token(user,access_token)
if user
user.consumer_tokens.first(:conditions=>{:_type=>self.to_s,:token=>access_token.token}) ||
user.consumer_tokens.create!(:_type=>self.to_s,:token=>access_token.token, :secret=>access_token.secret)
else
# Is there a better way of doing this in mongoid?
# Please submit a patch
user = User.first(:conditions=>{:_type=>self.to_s,"consumer_tokens.token"=>access_token.token})
user = User.first(:conditions=>{"consumer_tokens._type"=>self.to_s,"consumer_tokens.token"=>access_token.token})
if user
user.consumer_tokens.detect{|t| t.token==access_token.token && t.is_a?(self)}
else
user = User.create
user = User.new
user.consumer_tokens.create!(:_type=>self.to_s,:token=>access_token.token, :secret=>access_token.secret)
user.save!
user.consumer_tokens.last
end
end
end
Expand Down

0 comments on commit f805e8c

Please sign in to comment.