]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/user.rb
Fix typo, which meant that there was a missing translation when selecting an area...
[rails.git] / app / models / user.rb
index 5a277c9b45b3c500cb595d9530c00bea1549a191..683fcc96baceea7cb6453212e7c9ac912b964971 100644 (file)
@@ -42,13 +42,7 @@ class User < ActiveRecord::Base
 
   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]])
@@ -84,6 +78,22 @@ class User < ActiveRecord::Base
     return el1
   end
 
+  def languages
+    attribute_present?(:languages) ? read_attribute(:languages).split(",") : []
+  end
+
+  def languages=(languages)
+    write_attribute(:languages, languages.join(","))
+  end
+
+  def preferred_language
+    languages.find { |l| Language.find(:first, :conditions => { :code => l }) }
+  end
+
+  def preferred_language_from(array)
+    (languages & array.collect { |i| i.to_s }).first
+  end
+
   def nearby(radius = 50, num = 10)
     if self.home_lon and self.home_lat 
       gc = OSM::GreatCircle.new(self.home_lat, self.home_lon)
@@ -119,7 +129,7 @@ class User < ActiveRecord::Base
   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