agenda-libre-ruby/app/models/user.rb

50 lines
1.1 KiB
Ruby
Raw Normal View History

require 'digest/md5'
# Moderators, but using a failed pwd mechanism
# TODO, migrate to full active_admin
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable,
:recoverable, :rememberable, :trackable, :validatable,
authentication_keys: [:login]
2014-09-03 02:14:21 +02:00
validates :login, presence: true
def encrypted_password=(pass)
self[:password] = pass
end
def encrypted_password
self[:password]
end
def self.find_first_by_auth_conditions(warden_conditions)
conditions = warden_conditions.dup
login = conditions.delete(:login)
if login.present?
2016-10-15 16:39:15 +02:00
where(conditions).find_by login: login
else
where(conditions).limit(1).to_a[0]
end
end
def valid_password?(password)
encrypted_password == password_digest(password)
end
2014-06-09 12:18:40 +02:00
def to_s
if firstname.present? || lastname.present?
[firstname, lastname].join ' '
else
login
end
2014-06-09 12:18:40 +02:00
end
protected
def password_digest(password)
Digest::MD5.hexdigest password
end
2013-11-14 10:54:09 +01:00
end