class User
def self.authenticate(login_or_email, password)
def self.authenticate(login_or_email, password) user = where(["login = ? OR email = ?", login_or_email, login_or_email]).first user if user && user.authenticated?(password) end
def after_initialize
def after_initialize @confirm_password = true end
def authenticated?(password)
def authenticated?(password) self.password == sha1(password) end
def confirm_password?
def confirm_password? @confirm_password end
def encrypt_password
def encrypt_password self.salt = Digest::SHA1.hexdigest("--#{Time.now}--#{login}--sweet harmonious biscuits--") self.password = sha1(password) end
def encrypt_password_unless_empty_or_unchanged
def encrypt_password_unless_empty_or_unchanged user = self.class.find(self.id) case password when '' self.password = user.password when user.password else encrypt_password end end
def forget_me
def forget_me update_attribute(:session_token, nil) end
def generate_token(column)
def generate_token(column) self[column] = SecureRandom.urlsafe_base64 if User.exists?(column => self[column]) end
def has_role?(role)
def has_role?(role) respond_to?("#{role}?") && send("#{role}?") end
def remember_me
def remember_me update_attribute(:session_token, sha1(Time.now + TrustyCms::Config['session_timeout'].to_i)) unless self.session_token? end
def send_password_reset
def send_password_reset generate_token(:password_reset_token) update_attribute(:password_reset_sent_at, Time.zone.now) PasswordMailer.password_reset(self).deliver_now end
def sha1(phrase)
def sha1(phrase) Digest::SHA1.hexdigest("--#{salt}--#{phrase}--") end
def validate_length_of_password?
def validate_length_of_password? new_record? or not password.to_s.empty? end