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 +4 -4
- data/app/services/forest_liana/filters_parser.rb +7 -1
- data/app/services/forest_liana/permissions_checker.rb +8 -1
- data/app/services/forest_liana/token.rb +1 -0
- data/config/initializers/httpclient.rb +11 -0
- data/lib/forest_liana/version.rb +1 -1
- data/spec/requests/authentications_spec.rb +5 -1
- data/spec/services/forest_liana/filters_parser_spec.rb +2 -0
- data/spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb +28 -0
- data/spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb +38 -0
- metadata +144 -143
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e27c82de4862ee0ef5a2d1c3a83911f3257c5622979bb5a0fa2b60f367b6095
|
4
|
+
data.tar.gz: 2e63d770bd045090db7458feb0a417e002419998202f2a9b20dc4087cf38e635
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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'
|
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
|
@@ -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
|
data/lib/forest_liana/version.rb
CHANGED
@@ -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.
|
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-
|
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/
|
514
|
-
- test/
|
515
|
-
- test/
|
516
|
-
- test/
|
517
|
-
- test/
|
518
|
-
- test/
|
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/
|
523
|
-
- test/dummy/
|
524
|
-
- test/dummy/
|
525
|
-
- test/dummy/
|
526
|
-
- test/dummy/
|
527
|
-
- test/dummy/
|
528
|
-
- test/dummy/
|
529
|
-
- test/dummy/
|
530
|
-
- test/dummy/
|
531
|
-
- test/dummy/
|
532
|
-
- test/dummy/
|
533
|
-
- test/dummy/
|
534
|
-
- test/dummy/
|
535
|
-
- test/dummy/
|
536
|
-
- test/dummy/
|
537
|
-
- test/dummy/
|
538
|
-
- test/dummy/
|
539
|
-
- test/dummy/
|
540
|
-
- test/dummy/
|
541
|
-
- test/dummy/
|
542
|
-
- test/dummy/
|
543
|
-
- test/dummy/app/
|
544
|
-
- test/dummy/app/
|
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/
|
553
|
-
- test/dummy/app/models/
|
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/
|
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/
|
564
|
-
- test/dummy/app/models/
|
565
|
-
- test/dummy/app/
|
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/
|
569
|
-
- test/dummy/
|
570
|
-
- test/dummy/
|
571
|
-
- test/dummy/
|
572
|
-
- test/dummy/
|
573
|
-
- test/dummy/
|
574
|
-
- test/dummy/
|
575
|
-
- test/dummy/
|
576
|
-
- test/dummy/
|
577
|
-
- test/dummy/
|
578
|
-
- test/dummy/
|
579
|
-
- test/dummy/
|
580
|
-
- test/dummy/
|
581
|
-
- test/dummy/
|
582
|
-
- test/dummy/
|
583
|
-
- test/dummy/
|
584
|
-
- test/dummy/
|
585
|
-
- test/dummy/
|
586
|
-
- test/
|
587
|
-
- test/
|
588
|
-
- test/
|
589
|
-
- test/
|
590
|
-
- test/
|
591
|
-
- test/
|
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/
|
599
|
-
-
|
600
|
-
- spec/
|
601
|
-
- spec/
|
602
|
-
- spec/
|
603
|
-
- spec/
|
604
|
-
- spec/
|
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/
|
618
|
-
- spec/dummy/
|
619
|
-
- spec/dummy/
|
620
|
-
- spec/dummy/
|
621
|
-
- spec/dummy/
|
622
|
-
- spec/dummy/
|
623
|
-
- spec/dummy/
|
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/
|
644
|
-
- spec/dummy/config/
|
645
|
-
- spec/dummy/config/
|
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/
|
655
|
-
- spec/
|
656
|
-
- spec/
|
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/
|
669
|
-
- spec/
|
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/
|
679
|
+
- spec/helpers/forest_liana/query_helper_spec.rb
|
680
|
+
- spec/helpers/forest_liana/schema_helper_spec.rb
|