From 6e10b773e46305482a91d02f4731679489fc2e7c Mon Sep 17 00:00:00 2001 From: Marnen Laibow-Koser Date: Mon, 12 Oct 2009 19:34:10 -0400 Subject: [PATCH] Remove lots of unnecessary restful_auth stuff from the User model. More specs passing. [#19] --- app/models/user.rb | 78 ---------------------------------------------- spec/blueprints.rb | 1 - 2 files changed, 79 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index b7fb00e3..3159d902 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -25,8 +25,6 @@ class User < ActiveRecord::Base validates_length_of :email, :within => 3..100 validates_uniqueness_of :email, :case_sensitive => false before_save :make_feed_key - before_save :encrypt_password - before_create :make_activation_code after_create :set_calendar # prevents a user from submitting a crafted form that bypasses activation # anything else you want your user to change should be added here. @@ -87,87 +85,11 @@ def to_s(format = :first_last) str.blank? ? self.email : str end - ##### The stuff below here comes from restful_authentication. - - # Activates the user in the database. - def activate - @activated = true - self.activated_at = Time.now.utc - self.activation_code = nil - save(false) - end - - def active? - # the existence of an activation code means they have not activated yet - activation_code.nil? - end - - # Returns true if the user has just been activated. - def pending? - @activated - end - - # Authenticates a user by their login e-mail address and unencrypted password. Returns the user or nil. - def self.authenticate(email, password) - u = find :first, :conditions => ['email = ? and activated_at IS NOT NULL', email] # need to get the salt - u && u.authenticated?(password) ? u : nil - end - - # Encrypts some data with the salt. - def self.encrypt(password, salt) - Digest::SHA1.hexdigest("--#{salt}--#{password}--") - end - - # Encrypts the password with the user salt - def encrypt(password) - self.class.encrypt(password, salt) - end - - def authenticated?(password) - crypted_password == encrypt(password) - end - - def remember_token? - remember_token_expires_at && Time.now.utc < remember_token_expires_at - end - - # These create and unset the fields required for remembering users between browser closes - def remember_me - remember_me_for 2.weeks - end - - def remember_me_for(time) - remember_me_until time.from_now.utc - end - - def remember_me_until(time) - self.remember_token_expires_at = time - self.remember_token = encrypt("#{email}--#{remember_token_expires_at}") - save(false) - end - - def forget_me - self.remember_token_expires_at = nil - self.remember_token = nil - save(false) - end - protected - # before filter - def encrypt_password - return if password.blank? - self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{email}--") if new_record? - self.crypted_password = encrypt(password) - end - def password_required? crypted_password.blank? || !password.blank? || !password_confirmation.blank? end - def make_activation_code - self.activation_code = Digest::SHA1.hexdigest( Time.now.to_s.split(//).sort_by {rand}.join ) - end - def make_feed_key if self.feed_key.blank? self.feed_key = Digest::MD5.hexdigest( Time.now.to_s.split(//).sort_by {rand}.join ) diff --git a/spec/blueprints.rb b/spec/blueprints.rb index d38c5780..8b012cde 100644 --- a/spec/blueprints.rb +++ b/spec/blueprints.rb @@ -43,7 +43,6 @@ city state zip - activated_at {Time.now.utc} end User.blueprint(:inactive) do