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
157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
# File 'lib/journaled/audit_log.rb', line 157 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
139 140 141 142 143 |
# File 'lib/journaled/audit_log.rb', line 139 def delete(**kwargs) _journaled_audit_log_check!(:delete, **kwargs) do super() end end |
#update_column(name, value, **kwargs) ⇒ Object
145 146 147 148 149 |
# File 'lib/journaled/audit_log.rb', line 145 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
151 152 153 154 155 |
# File 'lib/journaled/audit_log.rb', line 151 def update_columns(args = {}, **kwargs) _journaled_audit_log_check!(:update_columns, **args.merge(kwargs)) do super(args.merge(kwargs).except(:_force)) end end |