bullet_train-roles 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/lib/bullet_train/roles/version.rb +1 -1
- data/lib/models/role.rb +2 -2
- data/lib/roles/user.rb +6 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4fafcbc375644791ab3480a2bee1e43f19074e3efa30809d4770a27e80d25634
|
4
|
+
data.tar.gz: fc145307e762f0abc11839dd2710c5b11ed2747a9b514f5a32d4707268d35a21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf85bf3d3df4a12751b7ac55fedf7917ec2634956e7df9c2a4d8a43e65000ff36b8740f1f0974b97e6cba4929831ef54159035a4dd4f5504fa8ef359cab95ed6
|
7
|
+
data.tar.gz: e34a82313a0291b967222780dde2e60d7ab3c14131e97270c1c1dd5c20073758e3d9347d4046c56fcc26ece2581347438e82eded64e067a19ba9fe3fdd2e42e0
|
data/Gemfile.lock
CHANGED
@@ -9,7 +9,7 @@ GIT
|
|
9
9
|
PATH
|
10
10
|
remote: .
|
11
11
|
specs:
|
12
|
-
bullet_train-roles (0.1.
|
12
|
+
bullet_train-roles (0.1.8)
|
13
13
|
active_hash
|
14
14
|
activesupport
|
15
15
|
cancancan
|
@@ -79,7 +79,7 @@ GEM
|
|
79
79
|
ast (2.4.2)
|
80
80
|
builder (3.2.4)
|
81
81
|
byebug (11.1.3)
|
82
|
-
cancancan (3.
|
82
|
+
cancancan (3.4.0)
|
83
83
|
concurrent-ruby (1.1.9)
|
84
84
|
crass (1.0.6)
|
85
85
|
erubi (1.10.0)
|
data/lib/models/role.rb
CHANGED
@@ -176,7 +176,7 @@ class Role < ActiveYaml::Base
|
|
176
176
|
if @model == @parent
|
177
177
|
return @condition = {id: @parent_ids}
|
178
178
|
end
|
179
|
-
parent_association = possible_parent_associations.find { |association| @model.
|
179
|
+
parent_association = possible_parent_associations.find { |association| @model.reflect_on_association(association) || @intermediary_class&.reflect_on_association(association) }
|
180
180
|
return nil unless parent_association.present?
|
181
181
|
# If possible, use the team_id attribute because it saves us having to join all the way back to the source parent model
|
182
182
|
# In some scenarios this may be quicker, or if the parent model is in a different database shard, it may not even
|
@@ -184,7 +184,7 @@ class Role < ActiveYaml::Base
|
|
184
184
|
parent_with_id = "#{parent_association}_id"
|
185
185
|
@condition = if @model.column_names.include?(parent_with_id)
|
186
186
|
{parent_with_id.to_sym => @parent_ids}
|
187
|
-
elsif @intermediary.present? && @model.
|
187
|
+
elsif @intermediary.present? && @model.reflect_on_association(@intermediary)
|
188
188
|
{@intermediary.to_sym => {parent_with_id.to_sym => @parent_ids}}
|
189
189
|
else
|
190
190
|
{parent_association => {id: @parent_ids}}
|
data/lib/roles/user.rb
CHANGED
@@ -9,12 +9,16 @@ module Roles
|
|
9
9
|
included do
|
10
10
|
def parent_ids_for(role, through, parent)
|
11
11
|
parent_id_column = "#{parent}_id"
|
12
|
-
|
12
|
+
key = "#{role.key}_#{through}_#{parent_id_column}s"
|
13
|
+
|
14
|
+
@_parent_ids_for_cache ||= {}
|
15
|
+
return @_parent_ids_for_cache[key] if @_parent_ids_for_cache[key]
|
16
|
+
|
13
17
|
# TODO Maybe we should make ability caching a default feature of the gem?
|
14
18
|
# If we do that, we would just make it check whether `ability_cache` exists.
|
15
19
|
# return ability_cache[key] if ability_cache && ability_cache[key]
|
16
20
|
role = nil if role.default?
|
17
|
-
send(through).with_role(role).distinct.pluck(parent_id_column)
|
21
|
+
@_parent_ids_for_cache[key] = send(through).with_role(role).distinct.pluck(parent_id_column)
|
18
22
|
# TODO Maybe we should make ability caching a default feature of the gem?
|
19
23
|
# current_cache = ability_cache || {}
|
20
24
|
# current_cache[key] = value
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bullet_train-roles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Prabin Poudel
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-07-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: byebug
|
@@ -215,7 +215,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
215
|
- !ruby/object:Gem::Version
|
216
216
|
version: '0'
|
217
217
|
requirements: []
|
218
|
-
rubygems_version: 3.
|
218
|
+
rubygems_version: 3.2.22
|
219
219
|
signing_key:
|
220
220
|
specification_version: 4
|
221
221
|
summary: Yaml-backed ApplicationHash for CanCan Roles
|