effective_resources 2.21.0 → 2.21.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e624b078e296ebd81ef3c2ba6f2678ac0fbf0b4686c4fd5ec6b8a3452566e4aa
|
4
|
+
data.tar.gz: 9f7aa12a6c35a9dffc9930187766edbceda2507c577705da7cf471d4c5f71f57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe36963bfbe005989dd2f46e68cba00c051ff976a145436be023afdc233c8f9a741004d31d4364ee948fadb583e0d5fe49206362501252aa9cd6fb4bcc45d2f6
|
7
|
+
data.tar.gz: 57876da1721f9083a1b142de9471e117b03665d263a3830e9281b00721397b80d163c08b277f35b6e22f3c03117e4995630fa9bde032d45fb715acb482979c14
|
@@ -8,12 +8,6 @@ module Admin
|
|
8
8
|
def users
|
9
9
|
collection = current_user.class.all
|
10
10
|
|
11
|
-
if collection.respond_to?(:to_select2)
|
12
|
-
collection = collection.to_select2
|
13
|
-
elsif collection.respond_to?(:sorted)
|
14
|
-
collection = collection.sorted
|
15
|
-
end
|
16
|
-
|
17
11
|
respond_with_select2_ajax(collection) do |user|
|
18
12
|
{ id: user.to_param, text: user.try(:to_select2) || to_select2(user) }
|
19
13
|
end
|
@@ -27,12 +21,6 @@ module Admin
|
|
27
21
|
|
28
22
|
collection = klass.all
|
29
23
|
|
30
|
-
if collection.respond_to?(:to_select2)
|
31
|
-
collection = collection.to_select2
|
32
|
-
elsif collection.respond_to?(:sorted)
|
33
|
-
collection = collection.sorted
|
34
|
-
end
|
35
|
-
|
36
24
|
respond_with_select2_ajax(collection) do |organization|
|
37
25
|
{ id: organization.to_param, text: organization.try(:to_select2) || to_select2(organization) }
|
38
26
|
end
|
@@ -2,7 +2,7 @@ module Effective
|
|
2
2
|
module Select2AjaxController
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
|
-
def respond_with_select2_ajax(collection, skip_search: false, skip_authorize: false, &block)
|
5
|
+
def respond_with_select2_ajax(collection, skip_search: false, skip_authorize: false, skip_scope: false, &block)
|
6
6
|
raise('collection should be an ActiveRecord::Relation') unless collection.kind_of?(ActiveRecord::Relation)
|
7
7
|
|
8
8
|
# Authorize
|
@@ -15,6 +15,11 @@ module Effective
|
|
15
15
|
collection = collection.sorted
|
16
16
|
end
|
17
17
|
|
18
|
+
if (scope = params[:scope]).present? && !skip_scope
|
19
|
+
raise("invalid scope #{scope}") unless Effective::Resource.new(collection.klass).scope?(scope)
|
20
|
+
collection = collection.send(scope)
|
21
|
+
end
|
22
|
+
|
18
23
|
# Search
|
19
24
|
if (term = params[:term]).present? && !skip_search
|
20
25
|
columns = collection.klass.new.try(:to_select2_search_columns).presence
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module Effective
|
4
4
|
module Resources
|
5
5
|
module Associations
|
6
|
+
INVALID_SCOPE_NAMES = ['delete_all', 'destroy_all', 'update_all', 'update_counters', 'load', 'reload', 'reset', 'to_a', 'to_sql', 'explain', 'inspect']
|
7
|
+
|
6
8
|
def macros
|
7
9
|
[:belongs_to, :belongs_to_polymorphic, :has_many, :has_and_belongs_to_many, :has_one]
|
8
10
|
end
|
@@ -147,17 +149,23 @@ module Effective
|
|
147
149
|
end
|
148
150
|
|
149
151
|
def scope?(name)
|
152
|
+
return false unless name.present?
|
153
|
+
|
154
|
+
name = name.to_s
|
150
155
|
return false unless klass.respond_to?(name)
|
151
156
|
|
157
|
+
return false if INVALID_SCOPE_NAMES.include?(name)
|
158
|
+
return false if name.include?('?') || name.include?('!') || name.include?('=')
|
159
|
+
|
152
160
|
is_scope = false
|
153
161
|
|
154
162
|
EffectiveResources.transaction(klass) do
|
155
163
|
begin
|
156
|
-
|
164
|
+
is_scope = klass.public_send(name).kind_of?(ActiveRecord::Relation)
|
157
165
|
rescue => e
|
158
166
|
end
|
159
167
|
|
160
|
-
raise ActiveRecord::Rollback
|
168
|
+
raise ActiveRecord::Rollback unless is_scope
|
161
169
|
end
|
162
170
|
|
163
171
|
is_scope
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_resources
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.21.
|
4
|
+
version: 2.21.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-05-
|
11
|
+
date: 2024-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|