audited 3.0.0.rc1 → 3.0.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +12 -4
- data/audited-activerecord.gemspec +1 -1
- data/audited-mongo_mapper.gemspec +1 -1
- data/audited.gemspec +1 -1
- data/lib/audited/auditor.rb +2 -4
- data/spec/support/active_record/models.rb +5 -5
- data/spec/support/mongo_mapper/models.rb +41 -5
- metadata +6 -3
data/README.md
CHANGED
@@ -174,14 +174,22 @@ company.associated_audits.last.auditable # => #<User name: "Steve Richert">
|
|
174
174
|
|
175
175
|
## Gotchas
|
176
176
|
|
177
|
-
###
|
177
|
+
### Accessible Attributes
|
178
178
|
|
179
|
-
|
179
|
+
Audited assumes you are using `attr_accessible`, however, if you are using `attr_protected` or just going at it unprotected you will have to set the `:allow_mass_assignment => true` option.
|
180
|
+
|
181
|
+
If using `attr_protected` be sure to add `audit_ids` to the list of protected attributes to prevent data loss.
|
182
|
+
|
183
|
+
```ruby
|
184
|
+
class User < ActiveRecord::Base
|
185
|
+
audited :allow_mass_assignment => true
|
186
|
+
end
|
187
|
+
```
|
180
188
|
|
181
189
|
```ruby
|
182
190
|
class User < ActiveRecord::Base
|
183
|
-
audited :
|
184
|
-
|
191
|
+
audited :allow_mass_assignment => true
|
192
|
+
attr_protected :logins, :audit_ids
|
185
193
|
end
|
186
194
|
```
|
187
195
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.name = 'audited-activerecord'
|
5
|
-
gem.version = '3.0.0.
|
5
|
+
gem.version = '3.0.0.rc2'
|
6
6
|
|
7
7
|
gem.authors = ['Brandon Keepers', 'Kenneth Kalmer', 'Daniel Morrison', 'Brian Ryckbost', 'Steve Richert', 'Ryan Glover']
|
8
8
|
gem.email = 'info@collectiveidea.com'
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.name = 'audited-mongo_mapper'
|
5
|
-
gem.version = '3.0.0.
|
5
|
+
gem.version = '3.0.0.rc2'
|
6
6
|
|
7
7
|
gem.authors = ['Brandon Keepers', 'Kenneth Kalmer', 'Daniel Morrison', 'Brian Ryckbost', 'Steve Richert', 'Ryan Glover']
|
8
8
|
gem.email = 'info@collectiveidea.com'
|
data/audited.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.name = 'audited'
|
5
|
-
gem.version = '3.0.0.
|
5
|
+
gem.version = '3.0.0.rc2'
|
6
6
|
|
7
7
|
gem.authors = ['Brandon Keepers', 'Kenneth Kalmer', 'Daniel Morrison', 'Brian Ryckbost', 'Steve Richert', 'Ryan Glover']
|
8
8
|
gem.email = 'info@collectiveidea.com'
|
data/lib/audited/auditor.rb
CHANGED
@@ -47,8 +47,6 @@ module Audited
|
|
47
47
|
# don't allow multiple calls
|
48
48
|
return if self.included_modules.include?(Audited::Auditor::AuditedInstanceMethods)
|
49
49
|
|
50
|
-
options = { :protect => accessible_attributes.blank? }.merge(options)
|
51
|
-
|
52
50
|
class_attribute :non_audited_columns, :instance_writer => false
|
53
51
|
class_attribute :auditing_enabled, :instance_writer => false
|
54
52
|
class_attribute :audit_associated_with, :instance_writer => false
|
@@ -68,12 +66,11 @@ module Audited
|
|
68
66
|
end
|
69
67
|
|
70
68
|
attr_accessor :audit_comment
|
71
|
-
unless
|
69
|
+
unless options[:allow_mass_assignment]
|
72
70
|
attr_accessible :audit_comment
|
73
71
|
end
|
74
72
|
|
75
73
|
has_many :audits, :as => :auditable, :class_name => Audited.audit_class.name
|
76
|
-
attr_protected :audit_ids if options[:protect]
|
77
74
|
Audited.audit_class.audited_class_names << self.to_s
|
78
75
|
|
79
76
|
after_create :audit_create if !options[:on] || (options[:on] && options[:on].include?(:create))
|
@@ -157,6 +154,7 @@ module Audited
|
|
157
154
|
revision.send :instance_variable_set, '@persisted', !self.destroyed?
|
158
155
|
revision.send :instance_variable_set, '@readonly', false
|
159
156
|
revision.send :instance_variable_set, '@destroyed', false
|
157
|
+
revision.send :instance_variable_set, '@_destroyed', false
|
160
158
|
revision.send :instance_variable_set, '@marked_for_destruction', false
|
161
159
|
Audited.audit_class.assign_revision_attributes(revision, attributes)
|
162
160
|
|
@@ -4,7 +4,7 @@ require File.expand_path('../schema', __FILE__)
|
|
4
4
|
module Models
|
5
5
|
module ActiveRecord
|
6
6
|
class User < ::ActiveRecord::Base
|
7
|
-
audited :except => :password
|
7
|
+
audited :allow_mass_assignment => true, :except => :password
|
8
8
|
|
9
9
|
attr_protected :logins
|
10
10
|
|
@@ -18,13 +18,13 @@ module Models
|
|
18
18
|
audited :comment_required => true
|
19
19
|
end
|
20
20
|
|
21
|
-
class
|
21
|
+
class AccessibleAfterDeclarationUser < ::ActiveRecord::Base
|
22
22
|
self.table_name = :users
|
23
|
-
audited
|
23
|
+
audited
|
24
24
|
attr_accessible :name, :username, :password
|
25
25
|
end
|
26
26
|
|
27
|
-
class
|
27
|
+
class AccessibleBeforeDeclarationUser < ::ActiveRecord::Base
|
28
28
|
self.table_name = :users
|
29
29
|
attr_accessible :name, :username, :password # declare attr_accessible before calling aaa
|
30
30
|
audited
|
@@ -32,7 +32,7 @@ module Models
|
|
32
32
|
|
33
33
|
class NoAttributeProtectionUser < ::ActiveRecord::Base
|
34
34
|
self.table_name = :users
|
35
|
-
audited
|
35
|
+
audited :allow_mass_assignment => true
|
36
36
|
end
|
37
37
|
|
38
38
|
class UserWithAfterAudit < ::ActiveRecord::Base
|
@@ -15,7 +15,7 @@ module Models
|
|
15
15
|
key :logins, Integer, :default => 0
|
16
16
|
timestamps!
|
17
17
|
|
18
|
-
audited :except => :password
|
18
|
+
audited :allow_mass_assignment => true, :except => :password
|
19
19
|
|
20
20
|
attr_protected :logins
|
21
21
|
|
@@ -38,7 +38,7 @@ module Models
|
|
38
38
|
audited :comment_required => true
|
39
39
|
end
|
40
40
|
|
41
|
-
class
|
41
|
+
class AccessibleAfterDeclarationUser
|
42
42
|
include ::MongoMapper::Document
|
43
43
|
|
44
44
|
key :name, String
|
@@ -49,11 +49,11 @@ module Models
|
|
49
49
|
key :logins, Integer, :default => 0
|
50
50
|
timestamps!
|
51
51
|
|
52
|
-
audited
|
52
|
+
audited
|
53
53
|
attr_accessible :name, :username, :password
|
54
54
|
end
|
55
55
|
|
56
|
-
class
|
56
|
+
class AccessibleBeforeDeclarationUser
|
57
57
|
include ::MongoMapper::Document
|
58
58
|
|
59
59
|
key :name, String
|
@@ -79,7 +79,7 @@ module Models
|
|
79
79
|
key :logins, Integer, :default => 0
|
80
80
|
timestamps!
|
81
81
|
|
82
|
-
audited
|
82
|
+
audited :allow_mass_assignment => true
|
83
83
|
end
|
84
84
|
|
85
85
|
class UserWithAfterAudit
|
@@ -170,5 +170,41 @@ module Models
|
|
170
170
|
|
171
171
|
audited :on => [:create, :update]
|
172
172
|
end
|
173
|
+
|
174
|
+
class RichObjectUser
|
175
|
+
include ::MongoMapper::Document
|
176
|
+
|
177
|
+
class Name
|
178
|
+
attr_accessor :first_name, :last_name
|
179
|
+
|
180
|
+
def self.from_mongo(value)
|
181
|
+
case value
|
182
|
+
when String then new(*value.split)
|
183
|
+
when self then value
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
def self.to_mongo(value)
|
188
|
+
case value
|
189
|
+
when String then value
|
190
|
+
when self then value.to_s
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
def initialize(first_name, last_name)
|
195
|
+
self.first_name, self.last_name = first_name, last_name
|
196
|
+
end
|
197
|
+
|
198
|
+
def to_s
|
199
|
+
[first_name, last_name].compact.join(' ')
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
key :name, Name
|
204
|
+
|
205
|
+
attr_accessible :name
|
206
|
+
|
207
|
+
audited
|
208
|
+
end
|
173
209
|
end
|
174
210
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: audited
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.0.
|
4
|
+
version: 3.0.0.rc2
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2012-
|
17
|
+
date: 2012-07-09 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: activerecord
|
@@ -189,6 +189,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
189
189
|
- - ! '>='
|
190
190
|
- !ruby/object:Gem::Version
|
191
191
|
version: '0'
|
192
|
+
segments:
|
193
|
+
- 0
|
194
|
+
hash: 1912523767266881932
|
192
195
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
196
|
none: false
|
194
197
|
requirements:
|
@@ -197,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
200
|
version: 1.3.1
|
198
201
|
requirements: []
|
199
202
|
rubyforge_project:
|
200
|
-
rubygems_version: 1.8.
|
203
|
+
rubygems_version: 1.8.24
|
201
204
|
signing_key:
|
202
205
|
specification_version: 3
|
203
206
|
summary: Log all changes to your models
|