Module: ActiveResource::ActsAsAuthenticatable::ClassMethods
- Defined in:
- lib/active_resource/acts_as_authenticatable.rb
Instance Method Summary collapse
-
#authenticate(username, password, remember = false) ⇒ Object
Authenticates the username and password.
Instance Method Details
#authenticate(username, password, remember = false) ⇒ Object
Authenticates the username and password
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/active_resource/acts_as_authenticatable.rb', line 9 def authenticate(username, password, remember = false) case(self.format) when ActiveResource::Formats::XmlFormat user = self.new Hash.from_xml(self.post(:signin,:username => username, :password => password, :remember => remember).body).values.first when ActiveResource::Formats::JsonFormat user = self.new ActiveSupport::JSON.decode(self.post(:signin,:username => username, :password => password, :remember => remember).body) else user = self.new Hash.from_xml(self.post(:signin,:username => username, :password => password, :remember => remember).body).values.first end unless user.nil? if self.sync && !self.sync_to.nil? last_update = user.attributes.delete "updated_at" local_user = self.sync_to.find_or_initialize_by_username user.username, user.attributes unless local_user.new_record? last_update_datetime = (last_update.kind_of?(String)) ? (DateTime.parse(last_update)) : (last_update) if local_user.updated_at < last_update_datetime local_user.update_attributes user.attributes end else local_user.save end end end return user end |