Module: Journaled::AuditLog::BlockedMethods
- Defined in:
- lib/journaled/audit_log.rb
Constant Summary collapse
- BLOCKED_METHODS =
{ delete: '#destroy', update_column: '#update!', update_columns: '#update!', }.freeze
Instance Method Summary collapse
-
#_journaled_audit_log_check!(method, **kwargs) ⇒ Object
rubocop:disable Metrics/AbcSize.
- #delete(**kwargs) ⇒ Object
- #update_column(name, value, **kwargs) ⇒ Object
- #update_columns(args = {}, **kwargs) ⇒ Object
Instance Method Details
#_journaled_audit_log_check!(method, **kwargs) ⇒ Object
rubocop:disable Metrics/AbcSize
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/journaled/audit_log.rb', line 146 def _journaled_audit_log_check!(method, **kwargs) # rubocop:disable Metrics/AbcSize force_was = AuditLog._force AuditLog._force = kwargs.delete(:_force) if kwargs.key?(:_force) audited_columns = kwargs.keys - audit_log_config.ignored_columns if method == :delete || audited_columns.any? = <<~MSG if kwargs.any? You are attempting to change the following audited columns: #{audited_columns.inspect} MSG raise <<~MSG if audit_log_config.enabled? && !AuditLog._force #{}Using `#{method}` is blocked because it skips audit logging (and other Rails callbacks)! Consider using `#{BLOCKED_METHODS[method]}` instead, or pass `_force: true` as an argument. MSG end yield ensure AuditLog._force = force_was end |
#delete(**kwargs) ⇒ Object
128 129 130 131 132 |
# File 'lib/journaled/audit_log.rb', line 128 def delete(**kwargs) _journaled_audit_log_check!(:delete, **kwargs) do super() end end |
#update_column(name, value, **kwargs) ⇒ Object
134 135 136 137 138 |
# File 'lib/journaled/audit_log.rb', line 134 def update_column(name, value, **kwargs) _journaled_audit_log_check!(:update_column, **kwargs.merge(name => value)) do super(name, value) end end |
#update_columns(args = {}, **kwargs) ⇒ Object
140 141 142 143 144 |
# File 'lib/journaled/audit_log.rb', line 140 def update_columns(args = {}, **kwargs) _journaled_audit_log_check!(:update_columns, **args.merge(kwargs)) do super(args.merge(kwargs).except(:_force)) end end |