forest_liana 9.6.4 → 9.7.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: 654d11ad9ebc49989ce8f011c901cd93a8ec42d524242e4fb81a28c6ddf82028
4
- data.tar.gz: 653d6d504a67d2bfbd34a73bbe4d091a8f076f3eaf72161da83cd72f0ce0dd23
3
+ metadata.gz: 8b9d6bfea5beec2a6a055816e4314893627e12c6be2edf1fdd6d94b1f7c01773
4
+ data.tar.gz: c335c707ec38d536cf260bf8e5c84108206424d49e48212132451ff805667e0b
5
5
  SHA512:
6
- metadata.gz: ecfe2712fe3abab2c261ee042b40964747d7d8f1b7289538e4fe1072f4f999bae6c2cbc7b3c165e3b170d7fd548e5041d85d29f10f9eb9ec04262ed6cf9383cc
7
- data.tar.gz: 21589dd2b1f38b9d12d32fd92b41af0f449dad28b3139ca6692fe6729482eb0a16474dd83763c0702902c5a2c4514f6b33c4fee201442199688a8f7302dfe136
6
+ metadata.gz: e3831c01431c740f1b924875a7c8b7a6abe694d77f51a98934eb19c2fbc240d2f5d04d2fc089fc3f940eaaa0faf3c03de762606c0cce273d6bcfc7912dbd544d
7
+ data.tar.gz: a8bdf701edf00bb1188fdd986ee33dd13d0b89280dc3684a37bf32c2af4b636c3ae4f93f2f1f13f5bf4f6e476a78c9499e1691590562dd69cd7deec3d6755195
@@ -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
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "9.6.4"
2
+ VERSION = "9.7.0"
3
3
  end
@@ -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.6.4
4
+ version: 9.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sandro Munda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-27 00:00:00.000000000 Z
11
+ date: 2025-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails