openstreetmap-website/app/models/spam_observer.rb
2012-03-10 14:42:09 +00:00

15 lines
427 B
Ruby

class SpamObserver < ActiveRecord::Observer
observe User, DiaryEntry, DiaryComment
def after_save(record)
case
when record.is_a?(User) then user = record
when record.is_a?(DiaryEntry) then user = record.user
when record.is_a?(DiaryComment) then user = record.user
end
if user.status == "active" and user.spam_score > SPAM_THRESHOLD
user.update_column(:status, "suspended")
end
end
end