forest_liana 9.6.4 → 9.8.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ade1e0d81e87e575d7c5eece2f38b97fd8893edfd717445f42cbf4b23cce7ce2
|
4
|
+
data.tar.gz: d36d7c92e24a04e328ac7a3955f07812bfa70f5cf67051bb4c2c747db41c3dba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1f7719f49624caef825d5dd327eb9e3a61b7960e687bed66320aebd1e78499605a3c4cc1a354820bf15e4be621b325a8ce0e666135f133ba4b0f41f3a906c74
|
7
|
+
data.tar.gz: fe583614a172ab9e2c47ab69c8fea656253db20d0b22acaf5a3499f730e2741be03ad1ad5c6b63a5bd024debf84db01c8f2d4ac02b29a6d0f804b8af73955f67
|
@@ -132,6 +132,8 @@ module ForestLiana
|
|
132
132
|
|
133
133
|
begin
|
134
134
|
segment_query = @params[:segmentQuery].gsub(/\;\s*$/, '')
|
135
|
+
ScopeManager.inject_context_variables_on_query(segment_query, @user)
|
136
|
+
|
135
137
|
@records = @records.where(
|
136
138
|
"#{@resource.table_name}.#{@resource.primary_key} IN (SELECT id FROM (#{segment_query}) as ids)"
|
137
139
|
)
|
@@ -37,13 +37,19 @@ module ForestLiana
|
|
37
37
|
|
38
38
|
def self.inject_context_variables(filter, user, request_context_variables = nil)
|
39
39
|
filter = JSON.parse(filter) if filter.is_a? String
|
40
|
-
|
41
40
|
retrieve = fetch_scopes(user['rendering_id'])
|
42
41
|
context_variables = Utils::ContextVariables.new(retrieve['team'], user, request_context_variables)
|
43
42
|
|
44
43
|
Utils::ContextVariablesInjector.inject_context_in_filter(filter, context_variables)
|
45
44
|
end
|
46
45
|
|
46
|
+
def self.inject_context_variables_on_query(query, user)
|
47
|
+
retrieve = fetch_scopes(user['rendering_id'])
|
48
|
+
context_variables = Utils::ContextVariables.new(retrieve['team'], user)
|
49
|
+
|
50
|
+
Utils::ContextVariablesInjector.inject_context_in_value(query, context_variables)
|
51
|
+
end
|
52
|
+
|
47
53
|
def self.invalidate_scope_cache(rendering_id)
|
48
54
|
Rails.cache.delete('forest.scopes.' + rendering_id.to_s)
|
49
55
|
end
|
data/config/routes.rb
CHANGED
data/lib/forest_liana/version.rb
CHANGED
@@ -326,6 +326,32 @@ module ForestLiana
|
|
326
326
|
expect(filters_parser).to have_received(:apply_filters).once
|
327
327
|
end
|
328
328
|
end
|
329
|
+
|
330
|
+
describe '#inject_context_variables_on_query' do
|
331
|
+
let(:query) { "SELECT id FROM users WHERE email = '{{currentUser.email}}'" }
|
332
|
+
let(:filled_scope) {
|
333
|
+
JSON.generate(
|
334
|
+
{
|
335
|
+
'collections' => {
|
336
|
+
'User' => {}
|
337
|
+
},
|
338
|
+
'team' => {'id' => '1', 'name' => 'Operations'}
|
339
|
+
}
|
340
|
+
)
|
341
|
+
}
|
342
|
+
let(:api_call_response_success) { Net::HTTPOK.new({}, 200, filled_scope) }
|
343
|
+
|
344
|
+
before do
|
345
|
+
allow(ForestLiana::ForestApiRequester).to receive(:get).and_return(api_call_response_success)
|
346
|
+
allow(api_call_response_success).to receive(:body).and_return(filled_scope)
|
347
|
+
end
|
348
|
+
|
349
|
+
it 'should inject the context variables in the query' do
|
350
|
+
described_class.inject_context_variables_on_query(query, user)
|
351
|
+
|
352
|
+
expect(query).to eq "SELECT id FROM users WHERE email = 'jd@forestadmin.com'"
|
353
|
+
end
|
354
|
+
end
|
329
355
|
end
|
330
356
|
end
|
331
357
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forest_liana
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.
|
4
|
+
version: 9.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sandro Munda
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -527,7 +527,7 @@ homepage: https://github.com/ForestAdmin/forest-rails
|
|
527
527
|
licenses:
|
528
528
|
- GPL-3.0
|
529
529
|
metadata: {}
|
530
|
-
post_install_message:
|
530
|
+
post_install_message:
|
531
531
|
rdoc_options: []
|
532
532
|
require_paths:
|
533
533
|
- lib
|
@@ -542,8 +542,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
542
542
|
- !ruby/object:Gem::Version
|
543
543
|
version: '0'
|
544
544
|
requirements: []
|
545
|
-
rubygems_version: 3.
|
546
|
-
signing_key:
|
545
|
+
rubygems_version: 3.4.20
|
546
|
+
signing_key:
|
547
547
|
specification_version: 4
|
548
548
|
summary: Official Rails Liana for Forest
|
549
549
|
test_files:
|