]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/oauth_token.rb
Make /user/new handle already logged in users better
[rails.git] / app / models / oauth_token.rb
index 5fca40ce203e425965a59a222615976cf70eb5e4..376ad76443453b391644f0e075117f87d25bbd62 100644 (file)
@@ -1,9 +1,23 @@
 class OauthToken < ActiveRecord::Base
   belongs_to :client_application
   belongs_to :user
+
+  scope :authorized, where("authorized_at IS NOT NULL and invalidated_at IS NULL")
+
   validates_uniqueness_of :token
   validates_presence_of :client_application, :token, :secret
-  before_validation_on_create :generate_keys
+
+  before_validation :generate_keys, :on => :create
+  
+  def self.find_token(token_key)
+    token = OauthToken.find_by_token(token_key, :include => :client_application)
+    if token && token.authorized?
+      logger.info "Loaded #{token.token} which was authorized by (user_id=#{token.user_id}) on the #{token.authorized_at}"
+      token
+    else
+      nil
+    end
+  end
   
   def invalidated?
     invalidated_at != nil