class User < ActiveRecord::Base
require 'xml/libxml'
+ belongs_to :language, :foreign_key => 'locale'
+
has_many :traces
has_many :diary_entries, :order => 'created_at DESC'
has_many :messages, :foreign_key => :to_user_id, :order => 'sent_on DESC'
def self.authenticate(options)
if options[:username] and options[:password]
- environment = Rails.configuration.environment
- adapter = Rails.configuration.database_configuration[environment]["adapter"]
- if adapter == "postgresql"
- user = find(:first, :conditions => ["email ILIKE ? OR display_name ILIKE ?", options[:username], options[:username]])
- else
- user = find(:first, :conditions => ["email = ? OR display_name = ?", options[:username], options[:username]])
- end
+ user = find(:first, :conditions => ["email = ? OR display_name = ?", options[:username], options[:username]])
user = nil if user and user.pass_crypt != OSM::encrypt_password(options[:password], user.pass_salt)
elsif options[:token]
token = UserToken.find(:first, :include => :user, :conditions => ["user_tokens.token = ?", options[:token]])
def delete
self.active = false
self.display_name = "user_#{self.id}"
- self.description = nil
+ self.description = ""
self.home_lat = nil
self.home_lon = nil
self.image = nil