53 |
53 |
attr_protected :login, :admin, :password, :password_confirmation, :hashed_password
|
54 |
54 |
|
55 |
55 |
validates_presence_of :login, :firstname, :lastname, :mail, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }
|
56 |
|
validates_uniqueness_of :login, :if => Proc.new { |user| !user.login.blank? }
|
57 |
|
validates_uniqueness_of :mail, :if => Proc.new { |user| !user.mail.blank? }
|
|
56 |
validates_uniqueness_of :login, :if => Proc.new { |user| !user.login.blank? }, :case_sensitive => false
|
|
57 |
validates_uniqueness_of :mail, :if => Proc.new { |user| !user.mail.blank? }, :case_sensitive => false
|
58 |
58 |
# Login must contain lettres, numbers, underscores only
|
59 |
59 |
validates_format_of :login, :with => /^[a-z0-9_\-@\.]*$/i
|
60 |
60 |
validates_length_of :login, :maximum => 30
|
... | ... | |
84 |
84 |
def self.try_to_login(login, password)
|
85 |
85 |
# Make sure no one can sign in with an empty password
|
86 |
86 |
return nil if password.to_s.empty?
|
87 |
|
user = find(:first, :conditions => ["login=?", login])
|
|
87 |
user = find_by_login(login)
|
88 |
88 |
if user
|
89 |
89 |
# user is already in local database
|
90 |
90 |
return nil if !user.active?
|
... | ... | |
183 |
183 |
def self.find_by_mail(mail)
|
184 |
184 |
find(:first, :conditions => ["LOWER(mail) = ?", mail.to_s.downcase])
|
185 |
185 |
end
|
|
186 |
|
|
187 |
# Makes find_by_login case-insensitive
|
|
188 |
def self.find_by_login(login)
|
|
189 |
find(:first, :conditions => ["LOWER(login) = ?", login.to_s.downcase])
|
|
190 |
end
|
186 |
191 |
|
187 |
192 |
# Sort users by their display names
|
188 |
193 |
def <=>(user)
|