Skip to content

Commit

Permalink
Remove lots of unnecessary restful_auth stuff from the User model. Mo…
Browse files Browse the repository at this point in the history
…re specs passing. [#19]
  • Loading branch information
marnen committed Oct 13, 2009
1 parent b9cf03a commit 6e10b77
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 79 deletions.
78 changes: 0 additions & 78 deletions app/models/user.rb
Expand Up @@ -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.
Expand Down Expand Up @@ -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 )
Expand Down
1 change: 0 additions & 1 deletion spec/blueprints.rb
Expand Up @@ -43,7 +43,6 @@
city
state
zip
activated_at {Time.now.utc}
end

User.blueprint(:inactive) do
Expand Down

0 comments on commit 6e10b77

Please sign in to comment.