X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/3a06235b02cfba20c19aee55aa7fece1513abb82..2d5df687fcbf2564e2f199535aed04f67953bd0e:/app/models/user.rb diff --git a/app/models/user.rb b/app/models/user.rb index ef0dcc4b0..6677d3b98 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -12,6 +12,8 @@ class User < ActiveRecord::Base has_many :tokens, :class_name => "UserToken" has_many :preferences, :class_name => "UserPreference" has_many :changesets, :order => 'created_at DESC' + has_many :note_comments, :foreign_key => :author_id + has_many :notes, :through => :note_comments has_many :client_applications has_many :oauth_tokens, :class_name => "OauthToken", :order => "authorized_at desc", :include => [:client_application] @@ -50,6 +52,7 @@ class User < ActiveRecord::Base after_initialize :set_defaults before_save :encrypt_password + after_save :spam_check has_attached_file :image, :default_url => "/assets/:class/:attachment/:style.png", @@ -142,14 +145,7 @@ class User < ActiveRecord::Base end def is_friends_with?(new_friend) - res = false - @new_friend = new_friend - self.friends.each do |friend| - if friend.friend_user_id == @new_friend.id - return true - end - end - return false + self.friends.where(:friend_user_id => new_friend.id).exists? end ## @@ -221,6 +217,14 @@ class User < ActiveRecord::Base return score.to_i end + ## + # perform a spam check on a user + def spam_check + if status == "active" and spam_score > SPAM_THRESHOLD + update_column(:status, "suspended") + end + end + ## # return an oauth access token for a specified application def access_token(application_key)