forest_liana 7.2.0 → 7.2.1

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: 9661846cededb74e730dcd16808b9a34f13e4094467efad90d069c3eccb89e31
4
- data.tar.gz: 7c7da61924546e78660f9e6674ddc15fb787432793fca4866e53681a0b4d463c
3
+ metadata.gz: 405d3a1e9d2b0dfd72036f751715645466617e357d3e76b0dea25b0294593fa6
4
+ data.tar.gz: c3109221aa1285a715790dccd479644ed577c063a291084e9bbacbc422b8ab2d
5
5
  SHA512:
6
- metadata.gz: 602f195379f0e5175aaccd55eff08a49da25a6f720a68cca54fce1a40cc46d3b2e878b42fa85512a43b2de94fba9fe9476e01d6a267a572c6a4f2d73e4b182d3
7
- data.tar.gz: 5dac79fb17eaddc9bece92948109934cf043e61a6afb0e697b423419e45c7ffac05b4cb6575650eceb9b3cdcd006c334ab984954e01b37a836047dd0c1f0f493
6
+ metadata.gz: 724439058016194576a6cc2436090b2ba0e2f04345373357410908891e8546a30bcf161a2e382b5bda6ba6bd0ad05918542ad551a6b6b5f4001137f2e43c6d9c
7
+ data.tar.gz: 849c567d87d937404ff555dbbadfae882f4c67c54640ce27910956b5620d58114c93464b06d691ed82a089ab904203de2e3b5bb285e052d936de42245a281687
@@ -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
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "7.2.0"
2
+ VERSION = "7.2.1"
3
3
  end
@@ -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.2.0
4
+ version: 7.2.1
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-09-10 00:00:00.000000000 Z
11
+ date: 2021-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -509,171 +509,171 @@ signing_key:
509
509
  specification_version: 4
510
510
  summary: Official Rails Liana for Forest
511
511
  test_files:
512
- - test/services/forest_liana/operator_date_interval_parser_test.rb
513
- - test/services/forest_liana/schema_adapter_test.rb
514
- - test/forest_liana_test.rb
515
512
  - test/routing/route_test.rb
516
- - test/dummy/bin/rake
517
- - test/dummy/bin/bundle
518
- - test/dummy/bin/setup
519
- - test/dummy/bin/rails
520
- - test/dummy/config/boot.rb
521
- - test/dummy/config/secrets.yml
513
+ - test/forest_liana_test.rb
514
+ - test/fixtures/belongs_to_field.yml
515
+ - test/fixtures/owner.yml
516
+ - test/fixtures/has_one_field.yml
517
+ - test/fixtures/serialize_field.yml
518
+ - test/fixtures/string_field.yml
519
+ - test/fixtures/has_many_through_field.yml
520
+ - test/fixtures/reference.yml
521
+ - test/fixtures/has_many_field.yml
522
+ - test/fixtures/tree.yml
523
+ - test/dummy/README.rdoc
524
+ - test/dummy/public/404.html
525
+ - test/dummy/public/422.html
526
+ - test/dummy/public/500.html
527
+ - test/dummy/public/favicon.ico
528
+ - test/dummy/Rakefile
529
+ - test/dummy/config/application.rb
522
530
  - test/dummy/config/routes.rb
531
+ - test/dummy/config/environments/production.rb
523
532
  - test/dummy/config/environments/test.rb
524
533
  - test/dummy/config/environments/development.rb
525
- - test/dummy/config/environments/production.rb
526
- - test/dummy/config/locales/en.yml
527
- - test/dummy/config/initializers/inflections.rb
528
- - test/dummy/config/initializers/cookies_serializer.rb
529
- - test/dummy/config/initializers/wrap_parameters.rb
530
- - test/dummy/config/initializers/mime_types.rb
534
+ - test/dummy/config/database.yml
535
+ - test/dummy/config/initializers/backtrace_silencers.rb
531
536
  - test/dummy/config/initializers/assets.rb
532
- - test/dummy/config/initializers/session_store.rb
537
+ - test/dummy/config/initializers/wrap_parameters.rb
533
538
  - test/dummy/config/initializers/filter_parameter_logging.rb
534
- - test/dummy/config/initializers/backtrace_silencers.rb
535
- - test/dummy/config/application.rb
536
- - test/dummy/config/database.yml
539
+ - test/dummy/config/initializers/session_store.rb
540
+ - test/dummy/config/initializers/inflections.rb
541
+ - test/dummy/config/initializers/mime_types.rb
542
+ - test/dummy/config/initializers/cookies_serializer.rb
543
+ - test/dummy/config/locales/en.yml
537
544
  - test/dummy/config/environment.rb
538
- - test/dummy/Rakefile
539
- - test/dummy/db/schema.rb
540
- - test/dummy/db/migrate/20150608131430_create_integer_field.rb
541
- - test/dummy/db/migrate/20181111162121_create_references_table.rb
542
- - test/dummy/db/migrate/20160628173505_add_timestamps.rb
543
- - test/dummy/db/migrate/20150608130516_create_date_field.rb
544
- - test/dummy/db/migrate/20150608131610_create_float_field.rb
545
- - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
546
- - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
547
- - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
548
- - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
549
- - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
550
- - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
551
- - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
552
- - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
553
- - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
554
- - test/dummy/db/migrate/20150608132621_create_string_field.rb
555
- - test/dummy/db/migrate/20160627172810_create_owner.rb
556
- - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
557
- - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
558
- - test/dummy/db/migrate/20160627172951_create_tree.rb
559
- - test/dummy/public/500.html
560
- - test/dummy/public/422.html
561
- - test/dummy/public/404.html
562
- - test/dummy/public/favicon.ico
563
- - test/dummy/config.ru
564
- - test/dummy/app/models/reference.rb
545
+ - test/dummy/config/secrets.yml
546
+ - test/dummy/config/boot.rb
547
+ - test/dummy/app/models/has_many_through_field.rb
548
+ - test/dummy/app/models/tree.rb
565
549
  - test/dummy/app/models/belongs_to_field.rb
566
- - test/dummy/app/models/has_many_class_name_field.rb
550
+ - test/dummy/app/models/belongs_to_class_name_field.rb
551
+ - test/dummy/app/models/polymorphic_field.rb
552
+ - test/dummy/app/models/reference.rb
553
+ - test/dummy/app/models/date_field.rb
567
554
  - test/dummy/app/models/decimal_field.rb
568
555
  - test/dummy/app/models/owner.rb
569
- - test/dummy/app/models/integer_field.rb
570
- - test/dummy/app/models/boolean_field.rb
571
- - test/dummy/app/models/date_field.rb
572
- - test/dummy/app/models/serialize_field.rb
573
556
  - test/dummy/app/models/has_many_field.rb
574
- - test/dummy/app/models/tree.rb
575
- - test/dummy/app/models/belongs_to_class_name_field.rb
557
+ - test/dummy/app/models/boolean_field.rb
576
558
  - test/dummy/app/models/has_and_belongs_to_many_field.rb
559
+ - test/dummy/app/models/serialize_field.rb
560
+ - test/dummy/app/models/integer_field.rb
577
561
  - test/dummy/app/models/float_field.rb
578
- - test/dummy/app/models/has_one_field.rb
579
- - test/dummy/app/models/polymorphic_field.rb
562
+ - test/dummy/app/models/has_many_class_name_field.rb
580
563
  - test/dummy/app/models/string_field.rb
581
- - test/dummy/app/models/has_many_through_field.rb
582
- - test/dummy/app/assets/config/manifest.js
583
- - test/dummy/app/assets/stylesheets/application.css
564
+ - test/dummy/app/models/has_one_field.rb
565
+ - test/dummy/app/views/layouts/application.html.erb
584
566
  - test/dummy/app/assets/javascripts/application.js
567
+ - test/dummy/app/assets/stylesheets/application.css
568
+ - test/dummy/app/assets/config/manifest.js
585
569
  - test/dummy/app/controllers/application_controller.rb
586
- - test/dummy/app/views/layouts/application.html.erb
587
570
  - test/dummy/app/helpers/application_helper.rb
588
- - test/dummy/README.rdoc
589
- - test/fixtures/has_many_through_field.yml
590
- - test/fixtures/has_many_field.yml
591
- - test/fixtures/string_field.yml
592
- - test/fixtures/owner.yml
593
- - test/fixtures/has_one_field.yml
594
- - test/fixtures/tree.yml
595
- - test/fixtures/serialize_field.yml
596
- - test/fixtures/belongs_to_field.yml
597
- - test/fixtures/reference.yml
571
+ - test/dummy/config.ru
572
+ - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
573
+ - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
574
+ - test/dummy/db/migrate/20160628173505_add_timestamps.rb
575
+ - test/dummy/db/migrate/20181111162121_create_references_table.rb
576
+ - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
577
+ - test/dummy/db/migrate/20150608131610_create_float_field.rb
578
+ - test/dummy/db/migrate/20160627172951_create_tree.rb
579
+ - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
580
+ - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
581
+ - test/dummy/db/migrate/20150608131430_create_integer_field.rb
582
+ - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
583
+ - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
584
+ - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
585
+ - test/dummy/db/migrate/20150608130516_create_date_field.rb
586
+ - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
587
+ - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
588
+ - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
589
+ - test/dummy/db/migrate/20160627172810_create_owner.rb
590
+ - test/dummy/db/migrate/20150608132621_create_string_field.rb
591
+ - test/dummy/db/schema.rb
592
+ - test/dummy/bin/rails
593
+ - test/dummy/bin/rake
594
+ - test/dummy/bin/bundle
595
+ - test/dummy/bin/setup
596
+ - test/services/forest_liana/operator_date_interval_parser_test.rb
597
+ - test/services/forest_liana/schema_adapter_test.rb
598
598
  - test/test_helper.rb
599
- - spec/services/forest_liana/has_many_getter_spec.rb
600
- - spec/services/forest_liana/permissions_formatter_spec.rb
601
- - spec/services/forest_liana/filters_parser_spec.rb
602
- - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
603
- - spec/services/forest_liana/value_stat_getter_spec.rb
604
- - spec/services/forest_liana/pie_stat_getter_spec.rb
605
- - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
606
- - spec/services/forest_liana/smart_action_field_validator_spec.rb
607
- - spec/services/forest_liana/schema_adapter_spec.rb
608
- - spec/services/forest_liana/permissions_getter_spec.rb
609
- - spec/services/forest_liana/resources_getter_spec.rb
610
- - spec/services/forest_liana/line_stat_getter_spec.rb
611
- - spec/services/forest_liana/apimap_sorter_spec.rb
612
- - spec/services/forest_liana/ip_whitelist_checker_spec.rb
613
- - spec/services/forest_liana/resource_updater_spec.rb
614
- - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
615
- - spec/services/forest_liana/scope_manager_spec.rb
616
- - spec/config/initializers/logger_spec.rb
617
- - spec/requests/resources_spec.rb
618
- - spec/requests/stats_spec.rb
619
- - spec/requests/actions_controller_spec.rb
620
- - spec/requests/authentications_spec.rb
621
599
  - spec/spec_helper.rb
600
+ - spec/config/initializers/logger_spec.rb
622
601
  - spec/lib/forest_liana/schema_file_updater_spec.rb
623
602
  - spec/lib/forest_liana/bootstrapper_spec.rb
624
603
  - spec/rails_helper.rb
625
- - spec/dummy/bin/rake
626
- - spec/dummy/bin/bundle
627
- - spec/dummy/bin/setup
628
- - spec/dummy/bin/rails
629
- - spec/dummy/config/boot.rb
630
- - spec/dummy/config/secrets.yml
604
+ - spec/dummy/README.rdoc
605
+ - spec/dummy/Rakefile
606
+ - spec/dummy/config/application.rb
631
607
  - spec/dummy/config/routes.rb
608
+ - spec/dummy/config/environments/production.rb
632
609
  - spec/dummy/config/environments/test.rb
633
610
  - spec/dummy/config/environments/development.rb
634
- - spec/dummy/config/environments/production.rb
635
- - spec/dummy/config/initializers/inflections.rb
636
- - spec/dummy/config/initializers/forest_liana.rb
637
- - spec/dummy/config/initializers/cookies_serializer.rb
638
- - spec/dummy/config/initializers/wrap_parameters.rb
639
- - spec/dummy/config/initializers/mime_types.rb
611
+ - spec/dummy/config/database.yml
612
+ - spec/dummy/config/initializers/backtrace_silencers.rb
640
613
  - spec/dummy/config/initializers/assets.rb
641
- - spec/dummy/config/initializers/session_store.rb
614
+ - spec/dummy/config/initializers/wrap_parameters.rb
642
615
  - spec/dummy/config/initializers/filter_parameter_logging.rb
643
- - spec/dummy/config/initializers/backtrace_silencers.rb
644
- - spec/dummy/config/application.rb
645
- - spec/dummy/config/database.yml
616
+ - spec/dummy/config/initializers/session_store.rb
617
+ - spec/dummy/config/initializers/forest_liana.rb
618
+ - spec/dummy/config/initializers/inflections.rb
619
+ - spec/dummy/config/initializers/mime_types.rb
620
+ - spec/dummy/config/initializers/cookies_serializer.rb
646
621
  - spec/dummy/config/environment.rb
647
- - spec/dummy/Rakefile
648
- - spec/dummy/db/schema.rb
649
- - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
650
- - spec/dummy/db/migrate/20210511141752_create_owners.rb
651
- - spec/dummy/db/migrate/20190226172951_create_user.rb
652
- - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
653
- - spec/dummy/db/migrate/20210326140855_create_locations.rb
654
- - spec/dummy/db/migrate/20210326110524_create_references.rb
655
- - spec/dummy/db/migrate/20210526084712_create_products.rb
656
- - spec/dummy/db/migrate/20190226173051_create_isle.rb
657
- - spec/dummy/db/migrate/20190226174951_create_tree.rb
658
- - spec/dummy/config.ru
659
- - spec/dummy/lib/forest_liana/collections/location.rb
660
- - spec/dummy/lib/forest_liana/collections/user.rb
622
+ - spec/dummy/config/secrets.yml
623
+ - spec/dummy/config/boot.rb
661
624
  - spec/dummy/lib/forest_liana/collections/island.rb
662
- - spec/dummy/app/config/routes.rb
625
+ - spec/dummy/lib/forest_liana/collections/user.rb
626
+ - spec/dummy/lib/forest_liana/collections/location.rb
627
+ - spec/dummy/app/models/tree.rb
628
+ - spec/dummy/app/models/island.rb
663
629
  - spec/dummy/app/models/reference.rb
630
+ - spec/dummy/app/models/owner.rb
664
631
  - spec/dummy/app/models/product.rb
665
- - spec/dummy/app/models/location.rb
666
632
  - spec/dummy/app/models/user.rb
667
- - spec/dummy/app/models/island.rb
668
- - spec/dummy/app/models/owner.rb
669
- - spec/dummy/app/models/tree.rb
670
- - spec/dummy/app/assets/config/manifest.js
671
- - spec/dummy/app/assets/stylesheets/application.css
633
+ - spec/dummy/app/models/location.rb
634
+ - spec/dummy/app/views/layouts/application.html.erb
635
+ - spec/dummy/app/config/routes.rb
672
636
  - spec/dummy/app/assets/javascripts/application.js
673
- - spec/dummy/app/controllers/forest/islands_controller.rb
637
+ - spec/dummy/app/assets/stylesheets/application.css
638
+ - spec/dummy/app/assets/config/manifest.js
674
639
  - spec/dummy/app/controllers/application_controller.rb
675
- - spec/dummy/app/views/layouts/application.html.erb
640
+ - spec/dummy/app/controllers/forest/islands_controller.rb
676
641
  - spec/dummy/app/helpers/application_helper.rb
677
- - spec/dummy/README.rdoc
678
- - spec/helpers/forest_liana/schema_helper_spec.rb
642
+ - spec/dummy/config.ru
643
+ - spec/dummy/db/migrate/20190226173051_create_isle.rb
644
+ - spec/dummy/db/migrate/20190226172951_create_user.rb
645
+ - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
646
+ - spec/dummy/db/migrate/20210326110524_create_references.rb
647
+ - spec/dummy/db/migrate/20190226174951_create_tree.rb
648
+ - spec/dummy/db/migrate/20210526084712_create_products.rb
649
+ - spec/dummy/db/migrate/20210326140855_create_locations.rb
650
+ - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
651
+ - spec/dummy/db/migrate/20210511141752_create_owners.rb
652
+ - spec/dummy/db/schema.rb
653
+ - spec/dummy/bin/rails
654
+ - spec/dummy/bin/rake
655
+ - spec/dummy/bin/bundle
656
+ - spec/dummy/bin/setup
657
+ - spec/services/forest_liana/apimap_sorter_spec.rb
658
+ - spec/services/forest_liana/smart_action_field_validator_spec.rb
659
+ - spec/services/forest_liana/resource_updater_spec.rb
660
+ - spec/services/forest_liana/has_many_getter_spec.rb
661
+ - spec/services/forest_liana/scope_manager_spec.rb
662
+ - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
663
+ - spec/services/forest_liana/ip_whitelist_checker_spec.rb
664
+ - spec/services/forest_liana/permissions_formatter_spec.rb
665
+ - spec/services/forest_liana/value_stat_getter_spec.rb
666
+ - spec/services/forest_liana/line_stat_getter_spec.rb
667
+ - spec/services/forest_liana/filters_parser_spec.rb
668
+ - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
669
+ - spec/services/forest_liana/permissions_getter_spec.rb
670
+ - spec/services/forest_liana/pie_stat_getter_spec.rb
671
+ - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
672
+ - spec/services/forest_liana/schema_adapter_spec.rb
673
+ - spec/services/forest_liana/resources_getter_spec.rb
674
+ - spec/requests/authentications_spec.rb
675
+ - spec/requests/actions_controller_spec.rb
676
+ - spec/requests/stats_spec.rb
677
+ - spec/requests/resources_spec.rb
679
678
  - spec/helpers/forest_liana/query_helper_spec.rb
679
+ - spec/helpers/forest_liana/schema_helper_spec.rb