audit_log 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,7 +18,8 @@ module AuditLog
18
18
  def audit(model_name, options = {})
19
19
  @audit_mappings[model_name] = {
20
20
  ignored_fields: options[:ignore] || [],
21
- nested_audited_models: []
21
+ nested_audited_models: [],
22
+ controllers: options[:controllers] || [model_name]
22
23
  }
23
24
 
24
25
  @current = @audit_mappings[model_name]
@@ -28,13 +28,18 @@ class AuditedModelsObserver < ActiveRecord::Observer
28
28
  set_model_to_audit(model)
29
29
 
30
30
  if self.controller && self.controller.audited_model == model
31
+ what = {id: model.id, event: :destroy}
32
+ what = what.merge(ActiveSupport::JSON.decode(model.to_json(root: false, include: association_audit_loggers(model))))
33
+
31
34
  logged_model = LoggedModel.new(
32
35
  who: self.controller.current_user_for_audit_log ? self.controller.current_user_for_audit_log.id : nil,
33
- what: {id: model.id, event: :destroy},
36
+ what: what,
34
37
  model_name: model.class.name,
35
38
  model_id: model.id
36
39
  )
37
40
  logged_model.save
41
+
42
+ self.controller.audited_model = nil
38
43
  end
39
44
  end
40
45
 
@@ -53,6 +58,8 @@ class AuditedModelsObserver < ActiveRecord::Observer
53
58
  )
54
59
  logged_model.save
55
60
  end
61
+
62
+ self.controller.audited_model = nil
56
63
  end
57
64
  end
58
65
 
@@ -132,11 +139,18 @@ class AuditedModelsObserver < ActiveRecord::Observer
132
139
  private
133
140
 
134
141
  def set_model_to_audit(model)
135
- if self.controller && self.controller.params[:controller].sub("Controller", "").underscore.split("/").last.singularize == model.class.to_s.underscore
142
+ if self.controller && is_controller_mapped_to_model(model)
136
143
  self.controller.audited_model ||= model
137
144
  end
138
145
  end
139
146
 
147
+ def is_controller_mapped_to_model(model)
148
+ controller_name = self.controller.params[:controller].sub("Controller", "").underscore.split("/").last
149
+ mapped_controller_names = AuditLog::Mapping.instance.audit_mappings[model.class.to_s.underscore.to_sym][:controllers]
150
+
151
+ mapped_controller_names.collect{|e| e.to_s.singularize}.include?(controller_name.to_s.singularize)
152
+ end
153
+
140
154
  def has_some_association_changed?(model)
141
155
  changed = false
142
156
 
@@ -1,3 +1,3 @@
1
1
  module AuditLog
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: audit_log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-16 00:00:00.000000000Z
12
+ date: 2012-11-26 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &83467150 !ruby/object:Gem::Requirement
16
+ requirement: &69592980 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>'
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *83467150
24
+ version_requirements: *69592980
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sqlite3
27
- requirement: &83466940 !ruby/object:Gem::Requirement
27
+ requirement: &69592560 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *83466940
35
+ version_requirements: *69592560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec-rails
38
- requirement: &83466710 !ruby/object:Gem::Requirement
38
+ requirement: &69592330 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *83466710
46
+ version_requirements: *69592330
47
47
  description:
48
48
  email:
49
49
  - ti@connectere.agr.br