rabarber 4.1.3 → 4.1.4
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/CHANGELOG.md +7 -0
- data/lib/rabarber/configuration.rb +1 -0
- data/lib/rabarber/core/cache.rb +6 -6
- data/lib/rabarber/models/role.rb +3 -3
- data/lib/rabarber/version.rb +1 -1
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5152a05ff663a5216b2fc2f546bf3b111f3e78a4c44c0088e72f2f73ac89464f
|
4
|
+
data.tar.gz: f6f24ff379055cfd5f4f7e93377a548289fd8f7b30b2f06053fd958f6ab8e5a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e31e2c7fa58d42096203d1f8027acea031a720fafe21fd44b179a8c2e66818686ebd55abf2ec0d3229c93fc7e04b514a68fa20feebef25b7e11048caac4e58e7
|
7
|
+
data.tar.gz: 6b7143de48cc95ead0caf5256c9e3d28a54a515f4ea50cf33fc87271d5d13071782fad1926dda698e7842047f7bbed4a2cfe8254be3390af0ab1fde2608a9b30
|
data/CHANGELOG.md
CHANGED
@@ -20,6 +20,7 @@ module Rabarber
|
|
20
20
|
instance_variable_set(:"@#{method_name}", Rabarber::Input::Types::Boolean.new(
|
21
21
|
value, Rabarber::ConfigurationError, "Configuration '#{method_name}' must be a Boolean"
|
22
22
|
).process)
|
23
|
+
ActiveSupport::Deprecation.new("5.0.0", "rabarber").warn("Rabarber’s ‘must_have_roles’ configuration option is deprecated and will be removed in the next major version!") if method_name == :must_have_roles
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
data/lib/rabarber/core/cache.rb
CHANGED
@@ -7,16 +7,16 @@ module Rabarber
|
|
7
7
|
module Cache
|
8
8
|
module_function
|
9
9
|
|
10
|
-
def fetch(
|
10
|
+
def fetch(uid, &)
|
11
11
|
return yield unless enabled?
|
12
12
|
|
13
|
-
Rails.cache.fetch(prepare_key(
|
13
|
+
Rails.cache.fetch(prepare_key(uid), expires_in: 1.hour, race_condition_ttl: 5.seconds, &)
|
14
14
|
end
|
15
15
|
|
16
|
-
def delete(*
|
16
|
+
def delete(*uids)
|
17
17
|
return unless enabled?
|
18
18
|
|
19
|
-
Rails.cache.delete_multi(
|
19
|
+
Rails.cache.delete_multi(uids.map { prepare_key(_1) }) if uids.any?
|
20
20
|
end
|
21
21
|
|
22
22
|
def enabled?
|
@@ -27,8 +27,8 @@ module Rabarber
|
|
27
27
|
Rails.cache.delete_matched(/^#{CACHE_PREFIX}/o)
|
28
28
|
end
|
29
29
|
|
30
|
-
def prepare_key(
|
31
|
-
"#{CACHE_PREFIX}:#{Digest::SHA2.hexdigest(Marshal.dump(
|
30
|
+
def prepare_key(uid)
|
31
|
+
"#{CACHE_PREFIX}:#{Digest::SHA2.hexdigest(Marshal.dump(uid))}"
|
32
32
|
end
|
33
33
|
|
34
34
|
CACHE_PREFIX = "rabarber"
|
data/lib/rabarber/models/role.rb
CHANGED
@@ -67,7 +67,9 @@ module Rabarber
|
|
67
67
|
private
|
68
68
|
|
69
69
|
def delete_roleables_cache(role, context:)
|
70
|
-
|
70
|
+
assigned_to_roleables(role).each_slice(1000) do |ids|
|
71
|
+
Rabarber::Core::Cache.delete(*ids.flat_map { [[_1, context], [_1, :all]] })
|
72
|
+
end
|
71
73
|
end
|
72
74
|
|
73
75
|
def assigned_to_roleables(role)
|
@@ -97,8 +99,6 @@ module Rabarber
|
|
97
99
|
record
|
98
100
|
end
|
99
101
|
|
100
|
-
private
|
101
|
-
|
102
102
|
def delete_assignments
|
103
103
|
ActiveRecord::Base.connection.execute(
|
104
104
|
ActiveRecord::Base.sanitize_sql(
|
data/lib/rabarber/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rabarber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.1.
|
4
|
+
version: 4.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- enjaku4
|
8
8
|
- trafium
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2025-03-
|
12
|
+
date: 2025-03-22 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rails
|
@@ -30,6 +31,7 @@ dependencies:
|
|
30
31
|
- - "<"
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '8.1'
|
34
|
+
description:
|
33
35
|
email:
|
34
36
|
- rabarber_gem@icloud.com
|
35
37
|
executables: []
|
@@ -80,6 +82,7 @@ metadata:
|
|
80
82
|
source_code_uri: https://github.com/enjaku4/rabarber
|
81
83
|
changelog_uri: https://github.com/enjaku4/rabarber/blob/main/CHANGELOG.md
|
82
84
|
rubygems_mfa_required: 'true'
|
85
|
+
post_install_message:
|
83
86
|
rdoc_options: []
|
84
87
|
require_paths:
|
85
88
|
- lib
|
@@ -97,7 +100,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
100
|
- !ruby/object:Gem::Version
|
98
101
|
version: '0'
|
99
102
|
requirements: []
|
100
|
-
rubygems_version: 3.
|
103
|
+
rubygems_version: 3.4.19
|
104
|
+
signing_key:
|
101
105
|
specification_version: 4
|
102
106
|
summary: Simple role-based authorization library for Ruby on Rails
|
103
107
|
test_files: []
|