]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/issue.rb
Merge branch 'master' into moderation
[rails.git] / app / models / issue.rb
index 40e0bb82aa9eb92a9bcc0f5ffcd3a2d1fe721b6b..472c860c68b29ccc476256d5053a1026e83e46e2 100644 (file)
@@ -9,6 +9,8 @@ class Issue < ActiveRecord::Base
   validates :reportable_id, :uniqueness => { :scope => [:reportable_type] }
   validates :reported_user_id, :presence => true
 
+  before_validation :set_reported_user
+
   # Check if more statuses are needed
   enum :status => %w[open ignored resolved]
   enum :type => %w[administrator moderator]
@@ -45,4 +47,17 @@ class Issue < ActiveRecord::Base
       transitions :from => :ignored, :to => :open
     end
   end
+
+  private
+
+  def set_reported_user
+    self.reported_user = case reportable.class.name
+                         when "User"
+                           reportable
+                         when "Note"
+                           reportable.author
+                         else
+                           reportable.user
+                         end
+  end
 end