X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e780e337d170036a69879debeb347a9c26a81518..be338ff6ecdfbc75e094b3e65134c9a841f3209c:/services/api/app/models/arvados_model.rb diff --git a/services/api/app/models/arvados_model.rb b/services/api/app/models/arvados_model.rb index e439789801..c67a3961d9 100644 --- a/services/api/app/models/arvados_model.rb +++ b/services/api/app/models/arvados_model.rb @@ -771,36 +771,51 @@ class ArvadosModel < ActiveRecord::Base end end + def is_audit_logging_enabled? + return !(Rails.configuration.max_audit_log_age.to_i == 0 && + Rails.configuration.max_audit_log_delete_batch.to_i > 0) + end + def log_start_state - @old_attributes = Marshal.load(Marshal.dump(attributes)) - @old_logged_attributes = Marshal.load(Marshal.dump(logged_attributes)) + if is_audit_logging_enabled? + @old_attributes = Marshal.load(Marshal.dump(attributes)) + @old_logged_attributes = Marshal.load(Marshal.dump(logged_attributes)) + end end def log_change(event_type) - log = Log.new(event_type: event_type).fill_object(self) - yield log - log.save! - log_start_state + if is_audit_logging_enabled? + log = Log.new(event_type: event_type).fill_object(self) + yield log + log.save! + log_start_state + end end def log_create - log_change('create') do |log| - log.fill_properties('old', nil, nil) - log.update_to self + if is_audit_logging_enabled? + log_change('create') do |log| + log.fill_properties('old', nil, nil) + log.update_to self + end end end def log_update - log_change('update') do |log| - log.fill_properties('old', etag(@old_attributes), @old_logged_attributes) - log.update_to self + if is_audit_logging_enabled? + log_change('update') do |log| + log.fill_properties('old', etag(@old_attributes), @old_logged_attributes) + log.update_to self + end end end def log_destroy - log_change('delete') do |log| - log.fill_properties('old', etag(@old_attributes), @old_logged_attributes) - log.update_to nil + if is_audit_logging_enabled? + log_change('delete') do |log| + log.fill_properties('old', etag(@old_attributes), @old_logged_attributes) + log.update_to nil + end end end end