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: 654d11ad9ebc49989ce8f011c901cd93a8ec42d524242e4fb81a28c6ddf82028
4
- data.tar.gz: 653d6d504a67d2bfbd34a73bbe4d091a8f076f3eaf72161da83cd72f0ce0dd23
3
+ metadata.gz: ade1e0d81e87e575d7c5eece2f38b97fd8893edfd717445f42cbf4b23cce7ce2
4
+ data.tar.gz: d36d7c92e24a04e328ac7a3955f07812bfa70f5cf67051bb4c2c747db41c3dba
5
5
  SHA512:
6
- metadata.gz: ecfe2712fe3abab2c261ee042b40964747d7d8f1b7289538e4fe1072f4f999bae6c2cbc7b3c165e3b170d7fd548e5041d85d29f10f9eb9ec04262ed6cf9383cc
7
- data.tar.gz: 21589dd2b1f38b9d12d32fd92b41af0f449dad28b3139ca6692fe6729482eb0a16474dd83763c0702902c5a2c4514f6b33c4fee201442199688a8f7302dfe136
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
@@ -59,6 +59,8 @@ ForestLiana::Engine.routes.draw do
59
59
  delete ':collection/:id', to: router
60
60
  delete ':collection', to: router
61
61
 
62
+ post ':collection/search' => 'resources#index'
63
+
62
64
  draw(:actions)
63
65
 
64
66
  end
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "9.6.4"
2
+ VERSION = "9.8.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.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: 2024-12-27 00:00:00.000000000 Z
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.3.5
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: