]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/request_token.rb
Clone objects before saving in case of a retry
[rails.git] / app / models / request_token.rb
index 6e4ec40c357aa46ccbb2a23cb87b5b8f1168f7e2..c0f0194860f0117fcf71181301bfb2c53385a849 100644 (file)
@@ -1,13 +1,12 @@
 class RequestToken < OauthToken
-
   attr_accessor :provided_oauth_verifier
 
   def authorize!(user)
     return false if authorized?
     self.user = user
     self.authorized_at = Time.now
-    self.verifier = OAuth::Helper.generate_key(20)[0,20] unless oauth10?
-    self.save
+    self.verifier = OAuth::Helper.generate_key(20)[0, 20] unless oauth10?
+    save
   end
 
   def exchange!
@@ -17,11 +16,11 @@ class RequestToken < OauthToken
     RequestToken.transaction do
       params = { :user => user, :client_application => client_application }
       # copy the permissions from the authorised request token to the access token
-      client_application.permissions.each { |p|
-        params[p] = read_attribute(p)
-      }
+      client_application.permissions.each do |p|
+        params[p] = self[p]
+      end
 
-      access_token = AccessToken.create(params, :without_protection => true)
+      access_token = AccessToken.create(params)
       invalidate!
       access_token
     end
@@ -36,11 +35,10 @@ class RequestToken < OauthToken
   end
 
   def oob?
-    callback_url.nil? || callback_url.downcase == 'oob'
+    callback_url.nil? || callback_url.casecmp("oob").zero?
   end
 
   def oauth10?
-    (defined? OAUTH_10_SUPPORT) && OAUTH_10_SUPPORT && self.callback_url.blank?
+    (defined? OAUTH_10_SUPPORT) && OAUTH_10_SUPPORT && callback_url.blank?
   end
-
 end