diff options
author | Jenkins <jenkins@jenkins.ninjawedding.org> | 2017-11-24 01:17:20 +0000 |
---|---|---|
committer | Jenkins <jenkins@jenkins.ninjawedding.org> | 2017-11-24 01:17:20 +0000 |
commit | 167fe2ab08288ce286f5c7660ff0ed587b65b988 (patch) | |
tree | 1a4c7d23cb3dd6993c0ce57a637a161e3405dba5 /app/models/admin/action_log.rb | |
parent | faad820458401b5a01f24d4da4bf2acf59ef440d (diff) | |
parent | e84fecb7e97851ed56f4d954e2d68128bb87da37 (diff) |
Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
Diffstat (limited to 'app/models/admin/action_log.rb')
-rw-r--r-- | app/models/admin/action_log.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/app/models/admin/action_log.rb b/app/models/admin/action_log.rb new file mode 100644 index 000000000..4e950fbf7 --- /dev/null +++ b/app/models/admin/action_log.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true +# == Schema Information +# +# Table name: admin_action_logs +# +# id :integer not null, primary key +# account_id :integer +# action :string default(""), not null +# target_type :string +# target_id :integer +# recorded_changes :text default(""), not null +# created_at :datetime not null +# updated_at :datetime not null +# + +class Admin::ActionLog < ApplicationRecord + serialize :recorded_changes + + belongs_to :account, required: true + belongs_to :target, required: true, polymorphic: true + + default_scope -> { order('id desc') } + + def action + super.to_sym + end + + before_validation :set_changes + + private + + def set_changes + case action + when :destroy, :create + self.recorded_changes = target.attributes + when :update, :promote, :demote + self.recorded_changes = target.previous_changes + end + end +end |