Module: AuthSlice::BaseModel::InstanceMethods

Defined in:
app/models/base_model.rb

Instance Method Summary collapse

Instance Method Details

#authenticated?(password) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
# File 'app/models/base_model.rb', line 15

def authenticated?(password)
  crypted_password == encrypt(password)
end

#encrypt(password) ⇒ Object

Encrypts the password with the user salt



27
28
29
# File 'app/models/base_model.rb', line 27

def encrypt(password)
  self.class.encrypt(password, salt)
end

#encrypt_passwordObject

before filter



20
21
22
23
24
# File 'app/models/base_model.rb', line 20

def encrypt_password
  return if password.blank?
  self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{username}--") if new_record?
  self.crypted_password = encrypt(password)
end

#forget_meObject



51
52
53
54
55
# File 'app/models/base_model.rb', line 51

def forget_me
  self.remember_token_expires_at = nil
  self.remember_token            = nil
  self.save
end

#remember_meObject

These create and unset the fields required for remembering users between browser closes Default of 2 weeks



47
48
49
# File 'app/models/base_model.rb', line 47

def remember_me
  remember_me_for(14)
end

#remember_me_for(days) ⇒ Object



41
42
43
# File 'app/models/base_model.rb', line 41

def remember_me_for(days)
  remember_me_until (Date.today + days)
end

#remember_me_until(time) ⇒ Object



35
36
37
38
39
# File 'app/models/base_model.rb', line 35

def remember_me_until(time)
  self.remember_token_expires_at = time
  self.remember_token            = encrypt("#{email}--#{remember_token_expires_at}")
  save
end

#remember_token?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'app/models/base_model.rb', line 31

def remember_token?
  remember_token_expires_at && Date.today < remember_token_expires_at
end