audited 5.3.2 → 5.4.0
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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +11 -0
- data/Appraisals +10 -0
- data/CHANGELOG.md +12 -0
- data/README.md +2 -2
- data/gemfiles/rails50.gemfile +1 -0
- data/gemfiles/rails51.gemfile +1 -0
- data/gemfiles/rails52.gemfile +1 -0
- data/gemfiles/rails71.gemfile +10 -0
- data/lib/audited/audit.rb +5 -1
- data/lib/audited/auditor.rb +3 -5
- data/lib/audited/version.rb +1 -1
- data/lib/audited.rb +4 -8
- data/spec/audited/audit_spec.rb +1 -1
- data/spec/audited_spec.rb +2 -6
- data/spec/rails_app/config/application.rb +24 -1
- data/spec/support/active_record/models.rb +6 -1
- metadata +20 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 276c472a6d93d971c65197a821d22f7488c6b7495a933428faece47530131e96
|
|
4
|
+
data.tar.gz: 6cb8e7d470900e358fe3a1e8382f5c55385bee8a6b69bad2bd59acb3ac6b2420
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e47432c90d81c5b009a2fdab3b720891cb00166adb285e4682c926e1f362c92897bb7f986295e25478c2cce09b29e5a05c956dc43af45c7c9dec6ba4b3e24df4
|
|
7
|
+
data.tar.gz: 60d2cc638562195e03cfab4f7e7825f7f7c90039b8a0a2d3f6de13e3778f6a6a89cd46574a951bfc5961649ef0fee3272c09b70111de82d3164bb40caceb797d
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -18,6 +18,7 @@ jobs:
|
|
|
18
18
|
- rails60
|
|
19
19
|
- rails61
|
|
20
20
|
- rails70
|
|
21
|
+
- rails71
|
|
21
22
|
db: [POSTGRES, MYSQL, SQLITE]
|
|
22
23
|
exclude:
|
|
23
24
|
# MySQL has issues on Ruby 2.3
|
|
@@ -96,6 +97,16 @@ jobs:
|
|
|
96
97
|
- appraisal: rails70
|
|
97
98
|
ruby: 2.6
|
|
98
99
|
|
|
100
|
+
# Rails 7.1 supports Ruby 2.7+
|
|
101
|
+
- appraisal: rails71
|
|
102
|
+
ruby: 2.3
|
|
103
|
+
- appraisal: rails71
|
|
104
|
+
ruby: 2.4
|
|
105
|
+
- appraisal: rails71
|
|
106
|
+
ruby: 2.5
|
|
107
|
+
- appraisal: rails71
|
|
108
|
+
ruby: 2.6
|
|
109
|
+
|
|
99
110
|
services:
|
|
100
111
|
postgres:
|
|
101
112
|
image: postgres
|
data/Appraisals
CHANGED
|
@@ -7,6 +7,7 @@ appraise "rails50" do
|
|
|
7
7
|
gem "pg", ">= 0.18", "< 2.0"
|
|
8
8
|
gem "sqlite3", "~> 1.3.6"
|
|
9
9
|
gem "psych", "~> 3.1"
|
|
10
|
+
gem "loofah", "2.20.0"
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
appraise "rails51" do
|
|
@@ -15,6 +16,7 @@ appraise "rails51" do
|
|
|
15
16
|
gem "pg", ">= 0.18", "< 2.0"
|
|
16
17
|
gem "sqlite3", "~> 1.3.6"
|
|
17
18
|
gem "psych", "~> 3.1"
|
|
19
|
+
gem "loofah", "2.20.0"
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
appraise "rails52" do
|
|
@@ -23,6 +25,7 @@ appraise "rails52" do
|
|
|
23
25
|
gem "pg", ">= 0.18", "< 2.0"
|
|
24
26
|
gem "sqlite3", "~> 1.3.6"
|
|
25
27
|
gem "psych", "~> 3.1"
|
|
28
|
+
gem "loofah", "2.20.0"
|
|
26
29
|
end
|
|
27
30
|
|
|
28
31
|
appraise "rails60" do
|
|
@@ -45,3 +48,10 @@ appraise "rails70" do
|
|
|
45
48
|
gem "pg", ">= 1.1"
|
|
46
49
|
gem "sqlite3", ">= 1.4"
|
|
47
50
|
end
|
|
51
|
+
|
|
52
|
+
appraise "rails71" do
|
|
53
|
+
gem "rails", ">= 7.1.0.beta1", "< 7.2"
|
|
54
|
+
gem "mysql2", ">= 0.4.4"
|
|
55
|
+
gem "pg", ">= 1.1"
|
|
56
|
+
gem "sqlite3", ">= 1.4"
|
|
57
|
+
end
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Audited ChangeLog
|
|
2
2
|
|
|
3
|
+
## 5.4.0 (2023-09-30)
|
|
4
|
+
|
|
5
|
+
- Add Rails 7.1 support - @yuki24
|
|
6
|
+
[#686](https://github.com/collectiveidea/audited/pull/686)
|
|
7
|
+
|
|
8
|
+
## 5.3.3 (2023-03-24)
|
|
9
|
+
|
|
10
|
+
- Use RequestStore instead of Thread.current for thread-safe requests - @tiagocassio
|
|
11
|
+
[#669](https://github.com/collectiveidea/audited/pull/669)
|
|
12
|
+
- Clean up Touch audits - @mcyoung, @akostadinov
|
|
13
|
+
[#668](https://github.com/collectiveidea/audited/pull/668)
|
|
14
|
+
|
|
3
15
|
## 5.3.2 (2023-02-22)
|
|
4
16
|
|
|
5
17
|
- Touch audit bug fixes - @mcyoung
|
data/README.md
CHANGED
|
@@ -37,7 +37,7 @@ Audited is currently ActiveRecord-only. In a previous life, Audited worked with
|
|
|
37
37
|
Add the gem to your Gemfile:
|
|
38
38
|
|
|
39
39
|
```ruby
|
|
40
|
-
gem "audited"
|
|
40
|
+
gem "audited"
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
And if you're using ```require: false``` you must add initializers like this:
|
|
@@ -238,7 +238,7 @@ class ApplicationController < ActionController::Base
|
|
|
238
238
|
if current_user
|
|
239
239
|
current_user
|
|
240
240
|
else
|
|
241
|
-
'
|
|
241
|
+
'Alexander Fleming'
|
|
242
242
|
end
|
|
243
243
|
end
|
|
244
244
|
end
|
data/gemfiles/rails50.gemfile
CHANGED
data/gemfiles/rails51.gemfile
CHANGED
data/gemfiles/rails52.gemfile
CHANGED
data/lib/audited/audit.rb
CHANGED
|
@@ -49,7 +49,11 @@ module Audited
|
|
|
49
49
|
cattr_accessor :audited_class_names
|
|
50
50
|
self.audited_class_names = Set.new
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
if Rails.version >= "7.1"
|
|
53
|
+
serialize :audited_changes, coder: YAMLIfTextColumnType
|
|
54
|
+
else
|
|
55
|
+
serialize :audited_changes, YAMLIfTextColumnType
|
|
56
|
+
end
|
|
53
57
|
|
|
54
58
|
scope :ascending, -> { reorder(version: :asc) }
|
|
55
59
|
scope :descending, -> { reorder(version: :desc) }
|
data/lib/audited/auditor.rb
CHANGED
|
@@ -247,12 +247,10 @@ module Audited
|
|
|
247
247
|
all_changes.except(*self.class.non_audited_columns)
|
|
248
248
|
end
|
|
249
249
|
|
|
250
|
-
if for_touch
|
|
250
|
+
if for_touch && (last_audit = audits.last&.audited_changes)
|
|
251
251
|
filtered_changes.reject! do |k, v|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
audits.last.audited_changes[k].to_json == v.to_json ||
|
|
255
|
-
audits.last.audited_changes[k].to_json == v[1].to_json
|
|
252
|
+
last_audit[k].to_json == v.to_json ||
|
|
253
|
+
last_audit[k].to_json == v[1].to_json
|
|
256
254
|
end
|
|
257
255
|
end
|
|
258
256
|
|
data/lib/audited/version.rb
CHANGED
data/lib/audited.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require "active_record"
|
|
4
|
+
require "request_store"
|
|
4
5
|
|
|
5
6
|
module Audited
|
|
6
7
|
class << self
|
|
@@ -21,16 +22,11 @@ module Audited
|
|
|
21
22
|
|
|
22
23
|
# remove audit_model in next major version it was only shortly present in 5.1.0
|
|
23
24
|
alias_method :audit_model, :audit_class
|
|
24
|
-
deprecate audit_model: "use Audited.audit_class instead of Audited.audit_model. This method will be removed."
|
|
25
|
+
deprecate audit_model: "use Audited.audit_class instead of Audited.audit_model. This method will be removed.",
|
|
26
|
+
deprecator: ActiveSupport::Deprecation.new('6.0.0', 'Audited')
|
|
25
27
|
|
|
26
28
|
def store
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if current_store_value.nil?
|
|
30
|
-
Thread.current.thread_variable_set(:audited_store, {})
|
|
31
|
-
else
|
|
32
|
-
current_store_value
|
|
33
|
-
end
|
|
29
|
+
RequestStore.store[:audited_store] ||= {}
|
|
34
30
|
end
|
|
35
31
|
|
|
36
32
|
def config
|
data/spec/audited/audit_spec.rb
CHANGED
data/spec/audited_spec.rb
CHANGED
|
@@ -3,16 +3,12 @@ require "spec_helper"
|
|
|
3
3
|
describe Audited do
|
|
4
4
|
describe "#store" do
|
|
5
5
|
describe "maintains state of store" do
|
|
6
|
-
let(:current_user) {
|
|
6
|
+
let(:current_user) { RequestStore.store[:audited_store] }
|
|
7
7
|
before { Audited.store[:current_user] = current_user }
|
|
8
8
|
|
|
9
|
-
it "
|
|
9
|
+
it "checks store is not nil" do
|
|
10
10
|
expect(Audited.store[:current_user]).to eq(current_user)
|
|
11
11
|
end
|
|
12
|
-
|
|
13
|
-
it "when executed with Fibers" do
|
|
14
|
-
Fiber.new { expect(Audited.store[:current_user]).to eq(current_user) }.resume
|
|
15
|
-
end
|
|
16
12
|
end
|
|
17
13
|
end
|
|
18
14
|
end
|
|
@@ -5,11 +5,34 @@ module RailsApp
|
|
|
5
5
|
config.root = File.expand_path("../../", __FILE__)
|
|
6
6
|
config.i18n.enforce_available_locales = true
|
|
7
7
|
|
|
8
|
-
if
|
|
8
|
+
if Rails.version.start_with?("7.1") && config.active_record.respond_to?(:yaml_column_permitted_classes=)
|
|
9
|
+
config.active_record.yaml_column_permitted_classes = [
|
|
10
|
+
String,
|
|
11
|
+
Symbol,
|
|
12
|
+
Integer,
|
|
13
|
+
NilClass,
|
|
14
|
+
Float,
|
|
15
|
+
Time,
|
|
16
|
+
Date,
|
|
17
|
+
FalseClass,
|
|
18
|
+
Hash,
|
|
19
|
+
Array,
|
|
20
|
+
DateTime,
|
|
21
|
+
TrueClass,
|
|
22
|
+
BigDecimal,
|
|
23
|
+
ActiveSupport::TimeWithZone,
|
|
24
|
+
ActiveSupport::TimeZone,
|
|
25
|
+
ActiveSupport::HashWithIndifferentAccess
|
|
26
|
+
]
|
|
27
|
+
elsif !Rails.version.start_with?("5.0") && !Rails.version.start_with?("5.1") && config.active_record.respond_to?(:yaml_column_permitted_classes=)
|
|
9
28
|
config.active_record.yaml_column_permitted_classes =
|
|
10
29
|
%w[String Symbol Integer NilClass Float Time Date FalseClass Hash Array DateTime TrueClass BigDecimal
|
|
11
30
|
ActiveSupport::TimeWithZone ActiveSupport::TimeZone ActiveSupport::HashWithIndifferentAccess]
|
|
12
31
|
end
|
|
32
|
+
|
|
33
|
+
if Rails.version >= "7.1"
|
|
34
|
+
config.active_support.cache_format_version = 7.1
|
|
35
|
+
end
|
|
13
36
|
end
|
|
14
37
|
end
|
|
15
38
|
|
|
@@ -8,7 +8,12 @@ module Models
|
|
|
8
8
|
attribute :non_column_attr if Rails.version >= "5.1"
|
|
9
9
|
attr_protected :logins if respond_to?(:attr_protected)
|
|
10
10
|
enum status: {active: 0, reliable: 1, banned: 2}
|
|
11
|
-
|
|
11
|
+
|
|
12
|
+
if Rails.version >= "7.1"
|
|
13
|
+
serialize :phone_numbers, type: Array
|
|
14
|
+
else
|
|
15
|
+
serialize :phone_numbers, Array
|
|
16
|
+
end
|
|
12
17
|
|
|
13
18
|
def name=(val)
|
|
14
19
|
write_attribute(:name, CGI.escapeHTML(val))
|
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: 5.
|
|
4
|
+
version: 5.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brandon Keepers
|
|
@@ -13,7 +13,7 @@ authors:
|
|
|
13
13
|
autorequire:
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
|
-
date: 2023-
|
|
16
|
+
date: 2023-09-30 00:00:00.000000000 Z
|
|
17
17
|
dependencies:
|
|
18
18
|
- !ruby/object:Gem::Dependency
|
|
19
19
|
name: activerecord
|
|
@@ -24,7 +24,7 @@ dependencies:
|
|
|
24
24
|
version: '5.0'
|
|
25
25
|
- - "<"
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
|
-
version: '7.
|
|
27
|
+
version: '7.2'
|
|
28
28
|
type: :runtime
|
|
29
29
|
prerelease: false
|
|
30
30
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -34,7 +34,21 @@ dependencies:
|
|
|
34
34
|
version: '5.0'
|
|
35
35
|
- - "<"
|
|
36
36
|
- !ruby/object:Gem::Version
|
|
37
|
-
version: '7.
|
|
37
|
+
version: '7.2'
|
|
38
|
+
- !ruby/object:Gem::Dependency
|
|
39
|
+
name: request_store
|
|
40
|
+
requirement: !ruby/object:Gem::Requirement
|
|
41
|
+
requirements:
|
|
42
|
+
- - "~>"
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
44
|
+
version: '1.2'
|
|
45
|
+
type: :runtime
|
|
46
|
+
prerelease: false
|
|
47
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
48
|
+
requirements:
|
|
49
|
+
- - "~>"
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: '1.2'
|
|
38
52
|
- !ruby/object:Gem::Dependency
|
|
39
53
|
name: appraisal
|
|
40
54
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -182,6 +196,7 @@ files:
|
|
|
182
196
|
- gemfiles/rails60.gemfile
|
|
183
197
|
- gemfiles/rails61.gemfile
|
|
184
198
|
- gemfiles/rails70.gemfile
|
|
199
|
+
- gemfiles/rails71.gemfile
|
|
185
200
|
- lib/audited-rspec.rb
|
|
186
201
|
- lib/audited.rb
|
|
187
202
|
- lib/audited/audit.rb
|
|
@@ -252,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
252
267
|
- !ruby/object:Gem::Version
|
|
253
268
|
version: '0'
|
|
254
269
|
requirements: []
|
|
255
|
-
rubygems_version: 3.4.
|
|
270
|
+
rubygems_version: 3.4.7
|
|
256
271
|
signing_key:
|
|
257
272
|
specification_version: 4
|
|
258
273
|
summary: Log all changes to your models
|