forest_liana 7.2.0 → 7.2.1

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: 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