diff options
Diffstat (limited to 'app/models/moderation.rb')
-rw-r--r-- | app/models/moderation.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/app/models/moderation.rb b/app/models/moderation.rb new file mode 100644 index 00000000000..1be2e542ae3 --- /dev/null +++ b/app/models/moderation.rb @@ -0,0 +1,31 @@ +class Moderation < ActiveRecord::Base + belongs_to :project, class_name: 'Project' + belongs_to :reverted_by, class_name: 'Moderation' + belongs_to :moderator, class_name: 'User' + belongs_to :moderated, class_name: 'User' + belongs_to :subject, polymorphic: true + + REVERT = 0 + LOCK_ISSUE = 1 + + def self.active + now = Time.now + where(reverted_by: nil).where('ends_at > ?', Time.now) + end + + def self.for_project(project) + where(project: project) + end + + def revert! + reversion = Moderation.create do |m| + m.type = REVERT + m.subject = self + m.project = self.project + end + + self.update_attributes(reverted_by: reversion) + end + + +end |