forest_liana 7.0.2 → 7.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b09187df0403cde37e732b39f06e89a4df087f1d91fe7e13a80aafd3490b33e7
4
- data.tar.gz: d81c4f22e697da9926c8e35736ce76eb60eca5f5b7d5579cb9140f680dfd15d9
3
+ metadata.gz: 9e27c82de4862ee0ef5a2d1c3a83911f3257c5622979bb5a0fa2b60f367b6095
4
+ data.tar.gz: 2e63d770bd045090db7458feb0a417e002419998202f2a9b20dc4087cf38e635
5
5
  SHA512:
6
- metadata.gz: 40e99d1d96cd7142fb8ae68a4aab488eb9fd3ac67a36e2e78213a3e5b63c9e1f516840b0648255e4f2efe3c983ba0e4146bdac8081e5e8fba5a2c98201be62c8
7
- data.tar.gz: f3a7a15486d28e64d62157fdf2fbef4779ab67b78423e3b75f0dcebf31e8549c3a8ddb0bed3234709ee5776416dced7e9e39ee755527775e4b5cea09265543b7
6
+ metadata.gz: e0a8e5a2a516e9224c90acf8c0ae367d2a99e5ec1d40132851c6e1a258d5a338c68e48eccd9facbccbe4650258426fb1d74286f9c58438ebd4e3a83a8a947d3e
7
+ data.tar.gz: c64b4806f3073c29e20d4d5c24e6d3e28d785db24de4cb3e62e9dfedc971e6da4be789333913eacd0933d3ef3e7333029f5b3045d1394a768ba5cd0d808f780d
@@ -149,7 +149,7 @@ module ForestLiana
149
149
 
150
150
  def parse_value(operator, value)
151
151
  case operator
152
- when 'not', 'greater_than', 'less_than', 'not_equal', 'equal', 'before', 'after', 'in'
152
+ when 'not', 'greater_than', 'less_than', 'not_equal', 'equal', 'before', 'after'
153
153
  value
154
154
  when 'contains', 'not_contains'
155
155
  "%#{value}%"
@@ -157,6 +157,12 @@ module ForestLiana
157
157
  "#{value}%"
158
158
  when 'ends_with'
159
159
  "%#{value}"
160
+ when 'in'
161
+ if value.kind_of?(String)
162
+ value.split(',').map { |val| val.strip() }
163
+ else
164
+ value
165
+ end
160
166
  when 'present', 'blank'
161
167
  else
162
168
  raise_unknown_operator_error(operator)
@@ -159,9 +159,16 @@ module ForestLiana
159
159
 
160
160
  def segment_query_allowed?
161
161
  segments_queries_permissions = get_segments_in_permissions
162
-
162
+ # NOTICE: The segmentQuery should be in the segments_queries_permissions
163
163
  return false unless segments_queries_permissions
164
164
 
165
+ # Handle UNION queries made by the FRONT to display available actions on details view
166
+ unionQueries = @collection_list_parameters[:segmentQuery].split('/*MULTI-SEGMENTS-QUERIES-UNION*/ UNION ');
167
+ if unionQueries.length > 1
168
+ # Are unionQueries all included only in the allowed queries
169
+ return unionQueries.all? { |unionQuery| segments_queries_permissions.select { |query| query.gsub(/;\s*/i, '') === unionQuery }.length > 0 };
170
+ end
171
+
165
172
  # NOTICE: @query_request_info matching an existing segment query
166
173
  return segments_queries_permissions.include? @collection_list_parameters[:segmentQuery]
167
174
  end
@@ -20,6 +20,7 @@ module ForestLiana
20
20
  last_name: user['last_name'],
21
21
  team: user['teams'][0],
22
22
  role: user['role'],
23
+ tags: user['tags'],
23
24
  rendering_id: rendering_id,
24
25
  exp: expiration_in_seconds()
25
26
  }, ForestLiana.auth_secret, 'HS256')
@@ -0,0 +1,11 @@
1
+ require 'httpclient'
2
+
3
+ class HTTPClient
4
+ alias original_initialize initialize
5
+
6
+ def initialize(*args, &block)
7
+ original_initialize(*args, &block)
8
+ # NOTICE: Force use of the default system CA certs (instead of the 6 year old bundled ones).
9
+ @session_manager&.ssl_config&.set_default_paths
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "7.0.2"
2
+ VERSION = "7.2.2"
3
3
  end
@@ -45,7 +45,7 @@ describe "Authentications", type: :request do
45
45
 
46
46
  describe "GET /authentication/callback" do
47
47
  before() do
48
- response = '{"data":{"id":666,"attributes":{"first_name":"Alice","last_name":"Doe","email":"alice@forestadmin.com","teams":[1,2,3],"role":"Test"}}}'
48
+ response = '{"data":{"id":666,"attributes":{"first_name":"Alice","last_name":"Doe","email":"alice@forestadmin.com","teams":[1,2,3],"role":"Test","tags":[{"key":"city","value":"Paris"}]}}}'
49
49
  allow(ForestLiana::ForestApiRequester).to receive(:get).with(
50
50
  "/liana/v2/renderings/42/authorization", { :headers => { "forest-token" => "THE-ACCESS-TOKEN" }, :query=> {} }
51
51
  ).and_return(
@@ -76,6 +76,10 @@ describe "Authentications", type: :request do
76
76
  }
77
77
 
78
78
  expect(decoded).to include(expected_token_data)
79
+ tags = decoded['tags']
80
+ expect(tags.length).to eq(1)
81
+ expect(tags[0]['key']).to eq("city")
82
+ expect(tags[0]['value']).to eq("Paris")
79
83
  expect(body).to eq({ token: token, tokenData: decoded.deep_symbolize_keys! })
80
84
  expect(response).to have_http_status(200)
81
85
  end
@@ -396,6 +396,8 @@ module ForestLiana
396
396
  it { expect(filter_parser.parse_value('present', nil)).to eq nil }
397
397
  it { expect(filter_parser.parse_value('equal', 'yes')).to eq 'yes' }
398
398
  it { expect(filter_parser.parse_value('blank', nil)).to eq nil }
399
+ it { expect(filter_parser.parse_value('in', 'yes,maybe ,no ')).to eq ['yes', 'maybe', 'no'] }
400
+ it { expect(filter_parser.parse_value('in', 123)).to eq 123 }
399
401
  end
400
402
 
401
403
  context 'on unknown operator' do
@@ -481,6 +481,14 @@ module ForestLiana
481
481
  end
482
482
  end
483
483
 
484
+ context 'when user has no segments and param segmentQuery is there' do
485
+ let(:segmentQuery) { 'SELECT * FROM products;' }
486
+ let(:collection_list_parameters) { { :user_id => "1", :segmentQuery => segmentQuery } }
487
+ it 'should be authorized' do
488
+ expect(subject.is_authorized?).to be false
489
+ end
490
+ end
491
+
484
492
  context 'when segments are defined' do
485
493
  let(:segments_permissions) { ['SELECT * FROM products;', 'SELECT * FROM sellers;'] }
486
494
  let(:collection_list_parameters) { { :user_id => "1", :segmentQuery => segmentQuery } }
@@ -499,6 +507,26 @@ module ForestLiana
499
507
  end
500
508
  end
501
509
 
510
+ context 'when received union segments NOT passing validation' do
511
+ let(:segmentQuery) { 'SELECT * FROM sellers/*MULTI-SEGMENTS-QUERIES-UNION*/ UNION SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2' }
512
+ it 'should return false' do
513
+ expect(subject.is_authorized?).to be false
514
+ end
515
+ end
516
+
517
+ context 'when received union segments passing validation' do
518
+ let(:segmentQuery) { 'SELECT * FROM sellers/*MULTI-SEGMENTS-QUERIES-UNION*/ UNION SELECT * FROM products' }
519
+ it 'should return true' do
520
+ expect(subject.is_authorized?).to be true
521
+ end
522
+ end
523
+ context 'when received union segments with UNION inside passing validation' do
524
+ let(:segmentQuery) { 'SELECT COUNT(*) AS value FROM products/*MULTI-SEGMENTS-QUERIES-UNION*/ UNION SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2' }
525
+ let(:segments_permissions) { ['SELECT COUNT(*) AS value FROM products;', 'SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;', 'SELECT * FROM products;', 'SELECT * FROM sellers;'] }
526
+ it 'should return true' do
527
+ expect(subject.is_authorized?).to be true
528
+ end
529
+ end
502
530
  end
503
531
 
504
532
  context 'when user has not the required permission' do
@@ -458,6 +458,14 @@ module ForestLiana
458
458
  end
459
459
  end
460
460
 
461
+ context 'when user has no segments queries permissions and param segmentQuery is there' do
462
+ let(:segmentQuery) { 'SELECT * FROM products;' }
463
+ let(:collection_list_parameters) { { :user_id => "1", :segmentQuery => segmentQuery } }
464
+ it 'should be authorized' do
465
+ expect(subject.is_authorized?).to be false
466
+ end
467
+ end
468
+
461
469
  context 'when segments are defined' do
462
470
  let(:default_rendering_id) { 1 }
463
471
  let(:segments_permissions) {
@@ -484,6 +492,36 @@ module ForestLiana
484
492
  expect(subject.is_authorized?).to be false
485
493
  end
486
494
  end
495
+
496
+ context 'when received union segments NOT passing validation' do
497
+ let(:segmentQuery) { 'SELECT * FROM sellers/*MULTI-SEGMENTS-QUERIES-UNION*/ UNION SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2' }
498
+ it 'should return false' do
499
+ expect(subject.is_authorized?).to be false
500
+ end
501
+ end
502
+
503
+ context 'when received union segments passing validation' do
504
+ let(:segmentQuery) { 'SELECT * FROM sellers/*MULTI-SEGMENTS-QUERIES-UNION*/ UNION SELECT * FROM products' }
505
+ it 'should return true' do
506
+ expect(subject.is_authorized?).to be true
507
+ end
508
+ end
509
+
510
+ context 'when received union segments with UNION inside passing validation' do
511
+ let(:segmentQuery) { 'SELECT COUNT(*) AS value FROM products/*MULTI-SEGMENTS-QUERIES-UNION*/ UNION SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2' }
512
+ let(:segments_permissions) {
513
+ {
514
+ default_rendering_id => {
515
+ collection_name => {
516
+ 'segments' => ['SELECT COUNT(*) AS value FROM products;', 'SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2;', 'SELECT * FROM products;', 'SELECT * FROM sellers;']
517
+ }
518
+ }
519
+ }
520
+ }
521
+ it 'should return true' do
522
+ expect(subject.is_authorized?).to be true
523
+ end
524
+ end
487
525
  end
488
526
  end
489
527
 
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: 7.0.2
4
+ version: 7.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sandro Munda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-16 00:00:00.000000000 Z
11
+ date: 2021-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -302,6 +302,7 @@ files:
302
302
  - config/initializers/arel-helpers.rb
303
303
  - config/initializers/error-messages.rb
304
304
  - config/initializers/errors.rb
305
+ - config/initializers/httpclient.rb
305
306
  - config/initializers/logger.rb
306
307
  - config/initializers/time_formats.rb
307
308
  - config/routes.rb
@@ -510,170 +511,170 @@ specification_version: 4
510
511
  summary: Official Rails Liana for Forest
511
512
  test_files:
512
513
  - test/routing/route_test.rb
513
- - test/dummy/Rakefile
514
- - test/dummy/bin/setup
515
- - test/dummy/bin/bundle
516
- - test/dummy/bin/rake
517
- - test/dummy/bin/rails
518
- - test/dummy/public/500.html
514
+ - test/forest_liana_test.rb
515
+ - test/fixtures/belongs_to_field.yml
516
+ - test/fixtures/owner.yml
517
+ - test/fixtures/has_one_field.yml
518
+ - test/fixtures/serialize_field.yml
519
+ - test/fixtures/string_field.yml
520
+ - test/fixtures/has_many_through_field.yml
521
+ - test/fixtures/reference.yml
522
+ - test/fixtures/has_many_field.yml
523
+ - test/fixtures/tree.yml
524
+ - test/dummy/README.rdoc
519
525
  - test/dummy/public/404.html
520
- - test/dummy/public/favicon.ico
521
526
  - test/dummy/public/422.html
522
- - test/dummy/db/schema.rb
523
- - test/dummy/db/migrate/20150608131610_create_float_field.rb
524
- - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
525
- - test/dummy/db/migrate/20160628173505_add_timestamps.rb
526
- - test/dummy/db/migrate/20160627172810_create_owner.rb
527
- - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
528
- - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
529
- - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
530
- - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
531
- - test/dummy/db/migrate/20160627172951_create_tree.rb
532
- - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
533
- - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
534
- - test/dummy/db/migrate/20150608130516_create_date_field.rb
535
- - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
536
- - test/dummy/db/migrate/20150608131430_create_integer_field.rb
537
- - test/dummy/db/migrate/20150608132621_create_string_field.rb
538
- - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
539
- - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
540
- - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
541
- - test/dummy/db/migrate/20181111162121_create_references_table.rb
542
- - test/dummy/README.rdoc
543
- - test/dummy/app/assets/stylesheets/application.css
544
- - test/dummy/app/assets/javascripts/application.js
545
- - test/dummy/app/assets/config/manifest.js
546
- - test/dummy/app/helpers/application_helper.rb
547
- - test/dummy/app/models/float_field.rb
548
- - test/dummy/app/models/boolean_field.rb
549
- - test/dummy/app/models/decimal_field.rb
527
+ - test/dummy/public/500.html
528
+ - test/dummy/public/favicon.ico
529
+ - test/dummy/Rakefile
530
+ - test/dummy/config/application.rb
531
+ - test/dummy/config/routes.rb
532
+ - test/dummy/config/environments/production.rb
533
+ - test/dummy/config/environments/test.rb
534
+ - test/dummy/config/environments/development.rb
535
+ - test/dummy/config/database.yml
536
+ - test/dummy/config/initializers/backtrace_silencers.rb
537
+ - test/dummy/config/initializers/assets.rb
538
+ - test/dummy/config/initializers/wrap_parameters.rb
539
+ - test/dummy/config/initializers/filter_parameter_logging.rb
540
+ - test/dummy/config/initializers/session_store.rb
541
+ - test/dummy/config/initializers/inflections.rb
542
+ - test/dummy/config/initializers/mime_types.rb
543
+ - test/dummy/config/initializers/cookies_serializer.rb
544
+ - test/dummy/config/locales/en.yml
545
+ - test/dummy/config/environment.rb
546
+ - test/dummy/config/secrets.yml
547
+ - test/dummy/config/boot.rb
548
+ - test/dummy/app/models/has_many_through_field.rb
549
+ - test/dummy/app/models/tree.rb
550
550
  - test/dummy/app/models/belongs_to_field.rb
551
551
  - test/dummy/app/models/belongs_to_class_name_field.rb
552
- - test/dummy/app/models/has_and_belongs_to_many_field.rb
553
- - test/dummy/app/models/string_field.rb
554
- - test/dummy/app/models/has_many_class_name_field.rb
555
- - test/dummy/app/models/integer_field.rb
552
+ - test/dummy/app/models/polymorphic_field.rb
553
+ - test/dummy/app/models/reference.rb
556
554
  - test/dummy/app/models/date_field.rb
557
- - test/dummy/app/models/serialize_field.rb
555
+ - test/dummy/app/models/decimal_field.rb
558
556
  - test/dummy/app/models/owner.rb
559
- - test/dummy/app/models/polymorphic_field.rb
560
- - test/dummy/app/models/has_many_through_field.rb
561
- - test/dummy/app/models/has_one_field.rb
562
557
  - test/dummy/app/models/has_many_field.rb
563
- - test/dummy/app/models/reference.rb
564
- - test/dummy/app/models/tree.rb
565
- - test/dummy/app/controllers/application_controller.rb
558
+ - test/dummy/app/models/boolean_field.rb
559
+ - test/dummy/app/models/has_and_belongs_to_many_field.rb
560
+ - test/dummy/app/models/serialize_field.rb
561
+ - test/dummy/app/models/integer_field.rb
562
+ - test/dummy/app/models/float_field.rb
563
+ - test/dummy/app/models/has_many_class_name_field.rb
564
+ - test/dummy/app/models/string_field.rb
565
+ - test/dummy/app/models/has_one_field.rb
566
566
  - test/dummy/app/views/layouts/application.html.erb
567
+ - test/dummy/app/assets/javascripts/application.js
568
+ - test/dummy/app/assets/stylesheets/application.css
569
+ - test/dummy/app/assets/config/manifest.js
570
+ - test/dummy/app/controllers/application_controller.rb
571
+ - test/dummy/app/helpers/application_helper.rb
567
572
  - test/dummy/config.ru
568
- - test/dummy/config/secrets.yml
569
- - test/dummy/config/boot.rb
570
- - test/dummy/config/locales/en.yml
571
- - test/dummy/config/environment.rb
572
- - test/dummy/config/initializers/inflections.rb
573
- - test/dummy/config/initializers/assets.rb
574
- - test/dummy/config/initializers/backtrace_silencers.rb
575
- - test/dummy/config/initializers/mime_types.rb
576
- - test/dummy/config/initializers/wrap_parameters.rb
577
- - test/dummy/config/initializers/cookies_serializer.rb
578
- - test/dummy/config/initializers/session_store.rb
579
- - test/dummy/config/initializers/filter_parameter_logging.rb
580
- - test/dummy/config/database.yml
581
- - test/dummy/config/routes.rb
582
- - test/dummy/config/environments/production.rb
583
- - test/dummy/config/environments/development.rb
584
- - test/dummy/config/environments/test.rb
585
- - test/dummy/config/application.rb
586
- - test/test_helper.rb
587
- - test/fixtures/serialize_field.yml
588
- - test/fixtures/has_one_field.yml
589
- - test/fixtures/string_field.yml
590
- - test/fixtures/tree.yml
591
- - test/fixtures/has_many_field.yml
592
- - test/fixtures/reference.yml
593
- - test/fixtures/owner.yml
594
- - test/fixtures/belongs_to_field.yml
595
- - test/fixtures/has_many_through_field.yml
596
- - test/services/forest_liana/schema_adapter_test.rb
573
+ - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
574
+ - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
575
+ - test/dummy/db/migrate/20160628173505_add_timestamps.rb
576
+ - test/dummy/db/migrate/20181111162121_create_references_table.rb
577
+ - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
578
+ - test/dummy/db/migrate/20150608131610_create_float_field.rb
579
+ - test/dummy/db/migrate/20160627172951_create_tree.rb
580
+ - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
581
+ - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
582
+ - test/dummy/db/migrate/20150608131430_create_integer_field.rb
583
+ - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
584
+ - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
585
+ - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
586
+ - test/dummy/db/migrate/20150608130516_create_date_field.rb
587
+ - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
588
+ - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
589
+ - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
590
+ - test/dummy/db/migrate/20160627172810_create_owner.rb
591
+ - test/dummy/db/migrate/20150608132621_create_string_field.rb
592
+ - test/dummy/db/schema.rb
593
+ - test/dummy/bin/rails
594
+ - test/dummy/bin/rake
595
+ - test/dummy/bin/bundle
596
+ - test/dummy/bin/setup
597
597
  - test/services/forest_liana/operator_date_interval_parser_test.rb
598
- - test/forest_liana_test.rb
599
- - spec/helpers/forest_liana/query_helper_spec.rb
600
- - spec/helpers/forest_liana/schema_helper_spec.rb
601
- - spec/dummy/Rakefile
602
- - spec/dummy/bin/setup
603
- - spec/dummy/bin/bundle
604
- - spec/dummy/bin/rake
605
- - spec/dummy/bin/rails
606
- - spec/dummy/db/schema.rb
607
- - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
608
- - spec/dummy/db/migrate/20210511141752_create_owners.rb
609
- - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
610
- - spec/dummy/db/migrate/20210326140855_create_locations.rb
611
- - spec/dummy/db/migrate/20190226174951_create_tree.rb
612
- - spec/dummy/db/migrate/20210326110524_create_references.rb
613
- - spec/dummy/db/migrate/20190226172951_create_user.rb
614
- - spec/dummy/db/migrate/20210526084712_create_products.rb
615
- - spec/dummy/db/migrate/20190226173051_create_isle.rb
598
+ - test/services/forest_liana/schema_adapter_test.rb
599
+ - test/test_helper.rb
600
+ - spec/spec_helper.rb
601
+ - spec/config/initializers/logger_spec.rb
602
+ - spec/lib/forest_liana/schema_file_updater_spec.rb
603
+ - spec/lib/forest_liana/bootstrapper_spec.rb
604
+ - spec/rails_helper.rb
616
605
  - spec/dummy/README.rdoc
617
- - spec/dummy/app/assets/stylesheets/application.css
618
- - spec/dummy/app/assets/javascripts/application.js
619
- - spec/dummy/app/assets/config/manifest.js
620
- - spec/dummy/app/helpers/application_helper.rb
621
- - spec/dummy/app/models/island.rb
622
- - spec/dummy/app/models/product.rb
623
- - spec/dummy/app/models/user.rb
624
- - spec/dummy/app/models/owner.rb
625
- - spec/dummy/app/models/location.rb
626
- - spec/dummy/app/models/reference.rb
627
- - spec/dummy/app/models/tree.rb
628
- - spec/dummy/app/controllers/forest/islands_controller.rb
629
- - spec/dummy/app/controllers/application_controller.rb
630
- - spec/dummy/app/config/routes.rb
631
- - spec/dummy/app/views/layouts/application.html.erb
632
- - spec/dummy/config.ru
633
- - spec/dummy/config/secrets.yml
634
- - spec/dummy/config/boot.rb
635
- - spec/dummy/config/environment.rb
636
- - spec/dummy/config/initializers/inflections.rb
637
- - spec/dummy/config/initializers/assets.rb
606
+ - spec/dummy/Rakefile
607
+ - spec/dummy/config/application.rb
608
+ - spec/dummy/config/routes.rb
609
+ - spec/dummy/config/environments/production.rb
610
+ - spec/dummy/config/environments/test.rb
611
+ - spec/dummy/config/environments/development.rb
612
+ - spec/dummy/config/database.yml
638
613
  - spec/dummy/config/initializers/backtrace_silencers.rb
614
+ - spec/dummy/config/initializers/assets.rb
615
+ - spec/dummy/config/initializers/wrap_parameters.rb
616
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
617
+ - spec/dummy/config/initializers/session_store.rb
639
618
  - spec/dummy/config/initializers/forest_liana.rb
619
+ - spec/dummy/config/initializers/inflections.rb
640
620
  - spec/dummy/config/initializers/mime_types.rb
641
- - spec/dummy/config/initializers/wrap_parameters.rb
642
621
  - spec/dummy/config/initializers/cookies_serializer.rb
643
- - spec/dummy/config/initializers/session_store.rb
644
- - spec/dummy/config/initializers/filter_parameter_logging.rb
645
- - spec/dummy/config/database.yml
646
- - spec/dummy/config/routes.rb
647
- - spec/dummy/config/environments/production.rb
648
- - spec/dummy/config/environments/development.rb
649
- - spec/dummy/config/environments/test.rb
650
- - spec/dummy/config/application.rb
622
+ - spec/dummy/config/environment.rb
623
+ - spec/dummy/config/secrets.yml
624
+ - spec/dummy/config/boot.rb
651
625
  - spec/dummy/lib/forest_liana/collections/island.rb
652
626
  - spec/dummy/lib/forest_liana/collections/user.rb
653
627
  - spec/dummy/lib/forest_liana/collections/location.rb
654
- - spec/config/initializers/logger_spec.rb
655
- - spec/services/forest_liana/scope_manager_spec.rb
656
- - spec/services/forest_liana/resources_getter_spec.rb
628
+ - spec/dummy/app/models/tree.rb
629
+ - spec/dummy/app/models/island.rb
630
+ - spec/dummy/app/models/reference.rb
631
+ - spec/dummy/app/models/owner.rb
632
+ - spec/dummy/app/models/product.rb
633
+ - spec/dummy/app/models/user.rb
634
+ - spec/dummy/app/models/location.rb
635
+ - spec/dummy/app/views/layouts/application.html.erb
636
+ - spec/dummy/app/config/routes.rb
637
+ - spec/dummy/app/assets/javascripts/application.js
638
+ - spec/dummy/app/assets/stylesheets/application.css
639
+ - spec/dummy/app/assets/config/manifest.js
640
+ - spec/dummy/app/controllers/application_controller.rb
641
+ - spec/dummy/app/controllers/forest/islands_controller.rb
642
+ - spec/dummy/app/helpers/application_helper.rb
643
+ - spec/dummy/config.ru
644
+ - spec/dummy/db/migrate/20190226173051_create_isle.rb
645
+ - spec/dummy/db/migrate/20190226172951_create_user.rb
646
+ - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
647
+ - spec/dummy/db/migrate/20210326110524_create_references.rb
648
+ - spec/dummy/db/migrate/20190226174951_create_tree.rb
649
+ - spec/dummy/db/migrate/20210526084712_create_products.rb
650
+ - spec/dummy/db/migrate/20210326140855_create_locations.rb
651
+ - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
652
+ - spec/dummy/db/migrate/20210511141752_create_owners.rb
653
+ - spec/dummy/db/schema.rb
654
+ - spec/dummy/bin/rails
655
+ - spec/dummy/bin/rake
656
+ - spec/dummy/bin/bundle
657
+ - spec/dummy/bin/setup
658
+ - spec/services/forest_liana/apimap_sorter_spec.rb
659
+ - spec/services/forest_liana/smart_action_field_validator_spec.rb
657
660
  - spec/services/forest_liana/resource_updater_spec.rb
661
+ - spec/services/forest_liana/has_many_getter_spec.rb
662
+ - spec/services/forest_liana/scope_manager_spec.rb
663
+ - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
664
+ - spec/services/forest_liana/ip_whitelist_checker_spec.rb
665
+ - spec/services/forest_liana/permissions_formatter_spec.rb
658
666
  - spec/services/forest_liana/value_stat_getter_spec.rb
667
+ - spec/services/forest_liana/line_stat_getter_spec.rb
668
+ - spec/services/forest_liana/filters_parser_spec.rb
669
+ - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
659
670
  - spec/services/forest_liana/permissions_getter_spec.rb
660
671
  - spec/services/forest_liana/pie_stat_getter_spec.rb
661
- - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
662
- - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
663
672
  - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
664
- - spec/services/forest_liana/smart_action_field_validator_spec.rb
665
- - spec/services/forest_liana/filters_parser_spec.rb
666
- - spec/services/forest_liana/apimap_sorter_spec.rb
667
673
  - spec/services/forest_liana/schema_adapter_spec.rb
668
- - spec/services/forest_liana/has_many_getter_spec.rb
669
- - spec/services/forest_liana/line_stat_getter_spec.rb
670
- - spec/services/forest_liana/ip_whitelist_checker_spec.rb
671
- - spec/services/forest_liana/permissions_formatter_spec.rb
672
- - spec/spec_helper.rb
673
- - spec/lib/forest_liana/schema_file_updater_spec.rb
674
- - spec/lib/forest_liana/bootstrapper_spec.rb
675
- - spec/rails_helper.rb
676
- - spec/requests/stats_spec.rb
674
+ - spec/services/forest_liana/resources_getter_spec.rb
675
+ - spec/requests/authentications_spec.rb
677
676
  - spec/requests/actions_controller_spec.rb
677
+ - spec/requests/stats_spec.rb
678
678
  - spec/requests/resources_spec.rb
679
- - spec/requests/authentications_spec.rb
679
+ - spec/helpers/forest_liana/query_helper_spec.rb
680
+ - spec/helpers/forest_liana/schema_helper_spec.rb