forest_liana 6.4.1 → 6.6.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: ebb2b74f1bb88c3a8d0fcf53f547299ba81df34b8a731199870d11a051594596
4
- data.tar.gz: 24ddbe395793d62696a5495540fefd2b4e571473bc0d3ba33f4262acfa2f3b80
3
+ metadata.gz: 3c09d00ec3f4c4c72cd36b9be6316fc42fa568ad959dbab90645f04c444e9e91
4
+ data.tar.gz: b01ca1c1b257ed31805deba1bb886dc041ef9545c38f9120f505d8369d066b7d
5
5
  SHA512:
6
- metadata.gz: 7b03239cea367068b3ee1922829cc20573151683ca9b7d710ed45ddf5b44c85bfcb156de7d828fec148d1f2e1eed7806c084d8616c5a16ff1a2b8085dacc5176
7
- data.tar.gz: 2dc54580589bc66d9efe695ded810db60890fe9c77db4139e6de7a9bdb48362844e421e6a5daf2467e4facbde8818427ab538d2095df694ccb779c0c2985a46e
6
+ metadata.gz: 6fc61c7b395475da62ea7da9068941dbf88386a8cd85616568febe897816ab58d1fbef4907ead68be9f2e954afc3a89549015303d1b743e6a684b906a4bf7398
7
+ data.tar.gz: 31d8fb2855a56dcbd05f6f35c30a63c77843e90adf355aaff95d569a3f70c943acd146cdfa77328dadfd26f8ce816cd3fa557cf8338ce5b2975810ae52c6aa0e
@@ -57,11 +57,8 @@ module ForestLiana
57
57
 
58
58
  # smart action permissions are retrieved from the action's endpoint and http_method
59
59
  def get_smart_action_request_info
60
- endpoint = request.fullpath
61
- # Trim starting '/'
62
- endpoint[0] = '' if endpoint[0] == '/'
63
60
  {
64
- endpoint: endpoint,
61
+ endpoint: request.fullpath,
65
62
  http_method: request.request_method
66
63
  }
67
64
  end
@@ -92,6 +92,7 @@ module ForestLiana
92
92
  end
93
93
  end
94
94
 
95
+ @apimap['meta']['stack'] = reorder_keys_basic(@apimap['meta']['stack'])
95
96
  @apimap['meta'] = reorder_keys_basic(@apimap['meta'])
96
97
  @apimap
97
98
  rescue => exception
@@ -1,7 +1,7 @@
1
1
  module ForestLiana
2
2
  class PermissionsChecker
3
3
  @@permissions_cached = Hash.new
4
- @@scopes_cached = Hash.new
4
+ @@renderings_cached = Hash.new
5
5
  @@roles_acl_activated = false
6
6
  # TODO: handle cache scopes per rendering
7
7
  @@expiration_in_seconds = (ENV['FOREST_PERMISSIONS_EXPIRATION_IN_SECONDS'] || 3600).to_i
@@ -39,13 +39,16 @@ module ForestLiana
39
39
  permissions['data'] = ForestLiana::PermissionsFormatter.convert_to_new_format(permissions['data'], @rendering_id)
40
40
  @@permissions_cached[@rendering_id] = permissions
41
41
  end
42
+
43
+ # NOTICE: Add stats permissions to the RenderingPermissions
44
+ permissions['data']['renderings'][@rendering_id]['stats'] = permissions['stats']
42
45
  add_scopes_to_cache(permissions)
43
46
  end
44
47
 
45
48
  def add_scopes_to_cache(permissions)
46
49
  permissions['data']['renderings'].keys.each { |rendering_id|
47
- @@scopes_cached[rendering_id] = permissions['data']['renderings'][rendering_id]
48
- @@scopes_cached[rendering_id]['last_fetch'] = Time.now
50
+ @@renderings_cached[rendering_id] = permissions['data']['renderings'][rendering_id]
51
+ @@renderings_cached[rendering_id]['last_fetch'] = Time.now
49
52
  } if permissions['data']['renderings']
50
53
  end
51
54
 
@@ -59,8 +62,6 @@ module ForestLiana
59
62
  return stat_with_parameters_allowed?
60
63
  end
61
64
 
62
-
63
-
64
65
  if permissions && permissions[@collection_name] &&
65
66
  permissions[@collection_name]['collection']
66
67
  if @permission_name === 'actions'
@@ -83,21 +84,25 @@ module ForestLiana
83
84
  end
84
85
 
85
86
  def get_scope_in_permissions
86
- @@scopes_cached[@rendering_id] &&
87
- @@scopes_cached[@rendering_id][@collection_name] &&
88
- @@scopes_cached[@rendering_id][@collection_name]['scope']
87
+ @@renderings_cached[@rendering_id] &&
88
+ @@renderings_cached[@rendering_id][@collection_name] &&
89
+ @@renderings_cached[@rendering_id][@collection_name]['scope']
89
90
  end
90
91
 
91
92
  def scope_cache_expired?
92
- return true unless @@scopes_cached[@rendering_id] && @@scopes_cached[@rendering_id]['last_fetch']
93
+ return true unless @@renderings_cached[@rendering_id] && @@renderings_cached[@rendering_id]['last_fetch']
93
94
 
94
- elapsed_seconds = date_difference_in_seconds(Time.now, @@scopes_cached[@rendering_id]['last_fetch'])
95
+ elapsed_seconds = date_difference_in_seconds(Time.now, @@renderings_cached[@rendering_id]['last_fetch'])
95
96
  elapsed_seconds >= @@expiration_in_seconds
96
97
  end
97
98
 
98
99
  # This will happen only on rolesACLActivated (as scope cache will always be up to date on disabled)
99
100
  def refresh_scope_cache
100
101
  permissions = ForestLiana::PermissionsGetter::get_permissions_for_rendering(@rendering_id, rendering_specific_only: true)
102
+
103
+ # NOTICE: Add stats permissions to the RenderingPermissions
104
+ permissions['data']['renderings'][@rendering_id]['stats'] = permissions['stats']
105
+
101
106
  add_scopes_to_cache(permissions)
102
107
  end
103
108
 
@@ -112,12 +117,12 @@ module ForestLiana
112
117
  end
113
118
 
114
119
  def get_live_query_permissions_content
115
- permissions = get_permissions
120
+ permissions = @@renderings_cached[@rendering_id]
116
121
  permissions && permissions['stats'] && permissions['stats']['queries']
117
122
  end
118
123
 
119
124
  def get_stat_with_parameters_content(statPermissionType)
120
- permissions = get_permissions
125
+ permissions = @@renderings_cached[@rendering_id]
121
126
  permissions && permissions['stats'] && permissions['stats'][statPermissionType]
122
127
  end
123
128
 
@@ -177,7 +182,7 @@ module ForestLiana
177
182
  return false unless pool_permissions
178
183
 
179
184
  # NOTICE: equivalent to Object.values in js & removes nil values
180
- array_permission_infos = @query_request_info.values.filter_map{ |x| x unless x.nil? }
185
+ array_permission_infos = @query_request_info.values.select{ |x| !x.nil? }
181
186
 
182
187
  # NOTICE: Is there any pool_permissions containing the array_permission_infos
183
188
  return pool_permissions.any? {
@@ -201,7 +206,7 @@ module ForestLiana
201
206
  # Used only for testing purpose
202
207
  def self.empty_cache
203
208
  @@permissions_cached = Hash.new
204
- @@scopes_cached = Hash.new
209
+ @@renderings_cached = Hash.new
205
210
  @@roles_acl_activated = false
206
211
  @@expiration_in_seconds = (ENV['FOREST_PERMISSIONS_EXPIRATION_IN_SECONDS'] || 3600).to_i
207
212
  end
@@ -19,6 +19,7 @@ module ForestLiana
19
19
  first_name: user['first_name'],
20
20
  last_name: user['last_name'],
21
21
  team: user['teams'][0],
22
+ role: user['role'],
22
23
  rendering_id: rendering_id,
23
24
  exp: expiration_in_seconds()
24
25
  }, ForestLiana.auth_secret, 'HS256')
@@ -6,7 +6,7 @@ module ForestLiana
6
6
 
7
7
  return nil unless collection
8
8
 
9
- collection.actions.find { |action| action.endpoint == endpoint && action.http_method == http_method }
9
+ collection.actions.find { |action| (action.endpoint == endpoint || "/#{action.endpoint}" == endpoint) && action.http_method == http_method }
10
10
  end
11
11
  end
12
12
  end
@@ -203,10 +203,12 @@ module ForestLiana
203
203
 
204
204
  def setup_forest_liana_meta
205
205
  ForestLiana.meta = {
206
- database_type: database_type,
207
206
  liana: 'forest-rails',
208
207
  liana_version: ForestLiana::VERSION,
209
- orm_version: Gem.loaded_specs["activerecord"].version.version
208
+ stack: {
209
+ database_type: database_type,
210
+ orm_version: Gem.loaded_specs["activerecord"].version.version,
211
+ }
210
212
  }
211
213
  end
212
214
 
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "6.4.1"
2
+ VERSION = "6.6.2"
3
3
  end
@@ -0,0 +1,12 @@
1
+ module ForestLiana
2
+ describe Bootstrapper do
3
+ describe 'setup_forest_liana_meta' do
4
+ it "should put statistic data related to user stack on a dedicated object" do
5
+ expect(ForestLiana.meta[:stack])
6
+ .to include(:orm_version)
7
+ expect(ForestLiana.meta[:stack])
8
+ .to include(:database_type)
9
+ end
10
+ end
11
+ end
12
+ 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]}}}'
48
+ response = '{"data":{"id":666,"attributes":{"first_name":"Alice","last_name":"Doe","email":"alice@forestadmin.com","teams":[1,2,3],"role":"Test"}}}'
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(
@@ -72,6 +72,7 @@ describe "Authentications", type: :request do
72
72
  "first_name" => 'Alice',
73
73
  "last_name" => 'Doe',
74
74
  "team" => 1,
75
+ "role" => "Test",
75
76
  }
76
77
 
77
78
  expect(decoded).to include(expected_token_data)
@@ -4,9 +4,11 @@ module ForestLiana
4
4
  context 'on a disordered apimap' do
5
5
  apimap = {
6
6
  'meta': {
7
- 'orm_version': '4.34.9',
7
+ stack: {
8
+ 'orm_version': '4.34.9',
9
+ 'database_type': 'postgresql',
10
+ },
8
11
  'liana_version': '1.5.24',
9
- 'database_type': 'postgresql',
10
12
  liana: 'forest-rails',
11
13
  },
12
14
  'data': [{
@@ -165,8 +167,8 @@ module ForestLiana
165
167
  end
166
168
 
167
169
  it 'should sort the meta values' do
168
- expect(apimap_sorted['meta'].keys).to eq(
169
- ['database_type', 'liana', 'liana_version', 'orm_version'])
170
+ expect(apimap_sorted['meta'].keys).to eq(['liana', 'liana_version', 'stack'])
171
+ expect(apimap_sorted['meta']['stack'].keys).to eq(['database_type', 'orm_version'])
170
172
  end
171
173
  end
172
174
  end
@@ -50,7 +50,8 @@ module ForestLiana
50
50
  })
51
51
  ]
52
52
  }
53
- let(:scope_permissions) { nil }
53
+ let(:default_rendering_id) { 1 }
54
+ let(:scope_permissions) { { default_rendering_id => { 'scopes' => nil } } }
54
55
  let(:default_api_permissions) {
55
56
  {
56
57
  "data" => {
@@ -118,12 +119,14 @@ module ForestLiana
118
119
  },
119
120
  'renderings' => scope_permissions
120
121
  },
122
+ "stats" => {
123
+ "queries"=>[],
124
+ },
121
125
  "meta" => {
122
126
  "rolesACLActivated" => true
123
127
  }
124
128
  }
125
129
  }
126
- let(:default_rendering_id) { 1 }
127
130
 
128
131
  before do
129
132
  allow(ForestLiana).to receive(:apimap).and_return(schema)
@@ -368,9 +371,12 @@ module ForestLiana
368
371
  "data" => {
369
372
  'collections' => { },
370
373
  'renderings' => {
371
- '2' => { 'custom' => nil }
374
+ other_rendering_id => { 'custom' => nil }
372
375
  }
373
376
  },
377
+ "stats" => {
378
+ "somestats" => [],
379
+ },
374
380
  "meta" => {
375
381
  "rolesACLActivated" => true
376
382
  }
@@ -20,7 +20,8 @@ module ForestLiana
20
20
  })
21
21
  ]
22
22
  }
23
- let(:scope_permissions) { nil }
23
+ let(:default_rendering_id) { 1 }
24
+ let(:scope_permissions) { { default_rendering_id => { 'scopes' => nil } } }
24
25
  let(:default_api_permissions) {
25
26
  {
26
27
  "data" => {
@@ -61,7 +62,6 @@ module ForestLiana
61
62
  },
62
63
  }
63
64
  }
64
- let(:default_rendering_id) { 1 }
65
65
 
66
66
  before do
67
67
  allow(ForestLiana).to receive(:apimap).and_return(schema)
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: 6.4.1
4
+ version: 6.6.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-06-01 00:00:00.000000000 Z
11
+ date: 2021-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -371,6 +371,7 @@ files:
371
371
  - spec/helpers/forest_liana/is_same_data_structure_helper_spec.rb
372
372
  - spec/helpers/forest_liana/query_helper_spec.rb
373
373
  - spec/helpers/forest_liana/schema_helper_spec.rb
374
+ - spec/lib/forest_liana/bootstrapper_spec.rb
374
375
  - spec/rails_helper.rb
375
376
  - spec/requests/actions_controller_spec.rb
376
377
  - spec/requests/authentications_spec.rb
@@ -504,167 +505,168 @@ signing_key:
504
505
  specification_version: 4
505
506
  summary: Official Rails Liana for Forest
506
507
  test_files:
507
- - test/forest_liana_test.rb
508
- - test/test_helper.rb
509
- - test/services/forest_liana/has_many_getter_test.rb
510
- - test/services/forest_liana/pie_stat_getter_test.rb
511
- - test/services/forest_liana/resource_updater_test.rb
512
- - test/services/forest_liana/value_stat_getter_test.rb
513
- - test/services/forest_liana/scope_validator_test.rb
514
- - test/services/forest_liana/schema_adapter_test.rb
515
- - test/services/forest_liana/operator_date_interval_parser_test.rb
516
508
  - test/routing/route_test.rb
517
- - test/fixtures/string_field.yml
518
- - test/fixtures/serialize_field.yml
519
- - test/fixtures/has_one_field.yml
520
- - test/fixtures/has_many_through_field.yml
521
- - test/fixtures/has_many_field.yml
522
- - test/fixtures/reference.yml
523
- - test/fixtures/owner.yml
524
- - test/fixtures/belongs_to_field.yml
525
- - test/fixtures/tree.yml
526
- - test/dummy/db/schema.rb
527
- - test/dummy/db/migrate/20150608131610_create_float_field.rb
528
- - test/dummy/db/migrate/20150608131430_create_integer_field.rb
529
- - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
530
- - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
531
- - test/dummy/db/migrate/20150608130516_create_date_field.rb
532
- - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
533
- - test/dummy/db/migrate/20150608132621_create_string_field.rb
534
- - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
535
- - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
536
- - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
537
- - test/dummy/db/migrate/20181111162121_create_references_table.rb
538
- - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
539
- - test/dummy/db/migrate/20160627172810_create_owner.rb
540
- - test/dummy/db/migrate/20160627172951_create_tree.rb
541
- - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
542
- - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
543
- - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
544
- - test/dummy/db/migrate/20160628173505_add_timestamps.rb
545
- - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
546
- - test/dummy/config.ru
547
- - test/dummy/bin/rake
548
509
  - test/dummy/bin/setup
549
- - test/dummy/bin/bundle
550
510
  - test/dummy/bin/rails
511
+ - test/dummy/bin/bundle
512
+ - test/dummy/bin/rake
513
+ - test/dummy/README.rdoc
551
514
  - test/dummy/config/routes.rb
552
- - test/dummy/config/boot.rb
553
- - test/dummy/config/initializers/mime_types.rb
554
- - test/dummy/config/initializers/assets.rb
555
- - test/dummy/config/initializers/session_store.rb
515
+ - test/dummy/config/database.yml
516
+ - test/dummy/config/environment.rb
517
+ - test/dummy/config/locales/en.yml
518
+ - test/dummy/config/application.rb
519
+ - test/dummy/config/secrets.yml
556
520
  - test/dummy/config/initializers/wrap_parameters.rb
557
521
  - test/dummy/config/initializers/filter_parameter_logging.rb
558
- - test/dummy/config/initializers/cookies_serializer.rb
559
- - test/dummy/config/initializers/backtrace_silencers.rb
522
+ - test/dummy/config/initializers/mime_types.rb
560
523
  - test/dummy/config/initializers/inflections.rb
561
- - test/dummy/config/locales/en.yml
562
- - test/dummy/config/secrets.yml
563
- - test/dummy/config/environment.rb
564
- - test/dummy/config/environments/production.rb
524
+ - test/dummy/config/initializers/session_store.rb
525
+ - test/dummy/config/initializers/assets.rb
526
+ - test/dummy/config/initializers/backtrace_silencers.rb
527
+ - test/dummy/config/initializers/cookies_serializer.rb
565
528
  - test/dummy/config/environments/development.rb
529
+ - test/dummy/config/environments/production.rb
566
530
  - test/dummy/config/environments/test.rb
567
- - test/dummy/config/database.yml
568
- - test/dummy/config/application.rb
569
- - test/dummy/README.rdoc
570
- - test/dummy/Rakefile
571
- - test/dummy/public/favicon.ico
572
- - test/dummy/public/404.html
573
- - test/dummy/public/422.html
574
- - test/dummy/public/500.html
575
- - test/dummy/app/controllers/application_controller.rb
576
- - test/dummy/app/views/layouts/application.html.erb
577
- - test/dummy/app/helpers/application_helper.rb
578
- - test/dummy/app/assets/stylesheets/application.css
579
- - test/dummy/app/assets/config/manifest.js
580
- - test/dummy/app/assets/javascripts/application.js
581
- - test/dummy/app/models/boolean_field.rb
582
- - test/dummy/app/models/decimal_field.rb
531
+ - test/dummy/config/boot.rb
532
+ - test/dummy/app/models/polymorphic_field.rb
583
533
  - test/dummy/app/models/date_field.rb
534
+ - test/dummy/app/models/integer_field.rb
535
+ - test/dummy/app/models/serialize_field.rb
536
+ - test/dummy/app/models/float_field.rb
537
+ - test/dummy/app/models/boolean_field.rb
538
+ - test/dummy/app/models/has_many_field.rb
584
539
  - test/dummy/app/models/tree.rb
585
- - test/dummy/app/models/has_and_belongs_to_many_field.rb
540
+ - test/dummy/app/models/has_many_class_name_field.rb
541
+ - test/dummy/app/models/string_field.rb
586
542
  - test/dummy/app/models/owner.rb
543
+ - test/dummy/app/models/has_and_belongs_to_many_field.rb
587
544
  - test/dummy/app/models/belongs_to_class_name_field.rb
588
545
  - test/dummy/app/models/has_many_through_field.rb
589
- - test/dummy/app/models/float_field.rb
590
- - test/dummy/app/models/polymorphic_field.rb
591
- - test/dummy/app/models/has_one_field.rb
592
- - test/dummy/app/models/has_many_class_name_field.rb
593
- - test/dummy/app/models/belongs_to_field.rb
594
- - test/dummy/app/models/integer_field.rb
595
- - test/dummy/app/models/serialize_field.rb
596
- - test/dummy/app/models/string_field.rb
597
- - test/dummy/app/models/has_many_field.rb
546
+ - test/dummy/app/models/decimal_field.rb
598
547
  - test/dummy/app/models/reference.rb
599
- - spec/spec_helper.rb
600
- - spec/services/forest_liana/permissions_getter_spec.rb
601
- - spec/services/forest_liana/resources_getter_spec.rb
602
- - spec/services/forest_liana/ip_whitelist_checker_spec.rb
603
- - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
604
- - spec/services/forest_liana/filters_parser_spec.rb
605
- - spec/services/forest_liana/schema_adapter_spec.rb
606
- - spec/services/forest_liana/line_stat_getter_spec.rb
607
- - spec/services/forest_liana/permissions_formatter_spec.rb
608
- - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
609
- - spec/services/forest_liana/apimap_sorter_spec.rb
610
- - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
548
+ - test/dummy/app/models/belongs_to_field.rb
549
+ - test/dummy/app/models/has_one_field.rb
550
+ - test/dummy/app/controllers/application_controller.rb
551
+ - test/dummy/app/assets/config/manifest.js
552
+ - test/dummy/app/assets/javascripts/application.js
553
+ - test/dummy/app/assets/stylesheets/application.css
554
+ - test/dummy/app/views/layouts/application.html.erb
555
+ - test/dummy/app/helpers/application_helper.rb
556
+ - test/dummy/config.ru
557
+ - test/dummy/public/favicon.ico
558
+ - test/dummy/public/500.html
559
+ - test/dummy/public/422.html
560
+ - test/dummy/public/404.html
561
+ - test/dummy/db/migrate/20150608132621_create_string_field.rb
562
+ - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
563
+ - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
564
+ - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
565
+ - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
566
+ - test/dummy/db/migrate/20160627172951_create_tree.rb
567
+ - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
568
+ - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
569
+ - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
570
+ - test/dummy/db/migrate/20150608130516_create_date_field.rb
571
+ - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
572
+ - test/dummy/db/migrate/20150608131430_create_integer_field.rb
573
+ - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
574
+ - test/dummy/db/migrate/20160628173505_add_timestamps.rb
575
+ - test/dummy/db/migrate/20160627172810_create_owner.rb
576
+ - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
577
+ - test/dummy/db/migrate/20181111162121_create_references_table.rb
578
+ - test/dummy/db/migrate/20150608131610_create_float_field.rb
579
+ - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
580
+ - test/dummy/db/schema.rb
581
+ - test/dummy/Rakefile
582
+ - test/test_helper.rb
583
+ - test/forest_liana_test.rb
584
+ - test/services/forest_liana/has_many_getter_test.rb
585
+ - test/services/forest_liana/value_stat_getter_test.rb
586
+ - test/services/forest_liana/pie_stat_getter_test.rb
587
+ - test/services/forest_liana/operator_date_interval_parser_test.rb
588
+ - test/services/forest_liana/schema_adapter_test.rb
589
+ - test/services/forest_liana/resource_updater_test.rb
590
+ - test/services/forest_liana/scope_validator_test.rb
591
+ - test/fixtures/belongs_to_field.yml
592
+ - test/fixtures/tree.yml
593
+ - test/fixtures/has_one_field.yml
594
+ - test/fixtures/has_many_through_field.yml
595
+ - test/fixtures/reference.yml
596
+ - test/fixtures/serialize_field.yml
597
+ - test/fixtures/has_many_field.yml
598
+ - test/fixtures/owner.yml
599
+ - test/fixtures/string_field.yml
600
+ - spec/requests/actions_controller_spec.rb
601
+ - spec/requests/stats_spec.rb
602
+ - spec/requests/authentications_spec.rb
603
+ - spec/requests/resources_spec.rb
611
604
  - spec/config/initializers/logger_spec.rb
612
- - spec/helpers/forest_liana/is_same_data_structure_helper_spec.rb
613
- - spec/helpers/forest_liana/schema_helper_spec.rb
614
- - spec/helpers/forest_liana/query_helper_spec.rb
615
- - spec/dummy/db/schema.rb
616
- - spec/dummy/db/migrate/20190226172951_create_user.rb
617
- - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
618
- - spec/dummy/db/migrate/20190226173051_create_isle.rb
619
- - spec/dummy/db/migrate/20210511141752_create_owners.rb
620
- - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
621
- - spec/dummy/db/migrate/20210326140855_create_locations.rb
622
- - spec/dummy/db/migrate/20190226174951_create_tree.rb
623
- - spec/dummy/db/migrate/20210526084712_create_products.rb
624
- - spec/dummy/db/migrate/20210326110524_create_references.rb
625
- - spec/dummy/config.ru
626
- - spec/dummy/bin/rake
605
+ - spec/spec_helper.rb
627
606
  - spec/dummy/bin/setup
628
- - spec/dummy/bin/bundle
629
607
  - spec/dummy/bin/rails
608
+ - spec/dummy/bin/bundle
609
+ - spec/dummy/bin/rake
610
+ - spec/dummy/README.rdoc
630
611
  - spec/dummy/config/routes.rb
631
- - spec/dummy/config/boot.rb
632
- - spec/dummy/config/initializers/forest_liana.rb
633
- - spec/dummy/config/initializers/mime_types.rb
634
- - spec/dummy/config/initializers/assets.rb
635
- - spec/dummy/config/initializers/session_store.rb
612
+ - spec/dummy/config/database.yml
613
+ - spec/dummy/config/environment.rb
614
+ - spec/dummy/config/application.rb
615
+ - spec/dummy/config/secrets.yml
636
616
  - spec/dummy/config/initializers/wrap_parameters.rb
637
617
  - spec/dummy/config/initializers/filter_parameter_logging.rb
638
- - spec/dummy/config/initializers/cookies_serializer.rb
639
- - spec/dummy/config/initializers/backtrace_silencers.rb
618
+ - spec/dummy/config/initializers/mime_types.rb
619
+ - spec/dummy/config/initializers/forest_liana.rb
640
620
  - spec/dummy/config/initializers/inflections.rb
641
- - spec/dummy/config/secrets.yml
642
- - spec/dummy/config/environment.rb
643
- - spec/dummy/config/environments/production.rb
621
+ - spec/dummy/config/initializers/session_store.rb
622
+ - spec/dummy/config/initializers/assets.rb
623
+ - spec/dummy/config/initializers/backtrace_silencers.rb
624
+ - spec/dummy/config/initializers/cookies_serializer.rb
644
625
  - spec/dummy/config/environments/development.rb
626
+ - spec/dummy/config/environments/production.rb
645
627
  - spec/dummy/config/environments/test.rb
646
- - spec/dummy/config/database.yml
647
- - spec/dummy/config/application.rb
648
- - spec/dummy/lib/forest_liana/collections/user.rb
649
- - spec/dummy/lib/forest_liana/collections/location.rb
650
- - spec/dummy/README.rdoc
651
- - spec/dummy/Rakefile
652
- - spec/dummy/app/controllers/application_controller.rb
653
- - spec/dummy/app/views/layouts/application.html.erb
654
- - spec/dummy/app/config/routes.rb
655
- - spec/dummy/app/helpers/application_helper.rb
656
- - spec/dummy/app/assets/stylesheets/application.css
657
- - spec/dummy/app/assets/config/manifest.js
658
- - spec/dummy/app/assets/javascripts/application.js
628
+ - spec/dummy/config/boot.rb
629
+ - spec/dummy/app/models/island.rb
630
+ - spec/dummy/app/models/location.rb
631
+ - spec/dummy/app/models/product.rb
659
632
  - spec/dummy/app/models/tree.rb
660
633
  - spec/dummy/app/models/owner.rb
661
634
  - spec/dummy/app/models/user.rb
662
- - spec/dummy/app/models/product.rb
663
- - spec/dummy/app/models/location.rb
664
- - spec/dummy/app/models/island.rb
665
635
  - spec/dummy/app/models/reference.rb
636
+ - spec/dummy/app/config/routes.rb
637
+ - spec/dummy/app/controllers/application_controller.rb
638
+ - spec/dummy/app/assets/config/manifest.js
639
+ - spec/dummy/app/assets/javascripts/application.js
640
+ - spec/dummy/app/assets/stylesheets/application.css
641
+ - spec/dummy/app/views/layouts/application.html.erb
642
+ - spec/dummy/app/helpers/application_helper.rb
643
+ - spec/dummy/config.ru
644
+ - spec/dummy/lib/forest_liana/collections/location.rb
645
+ - spec/dummy/lib/forest_liana/collections/user.rb
646
+ - spec/dummy/db/migrate/20190226173051_create_isle.rb
647
+ - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
648
+ - spec/dummy/db/migrate/20210326110524_create_references.rb
649
+ - spec/dummy/db/migrate/20210526084712_create_products.rb
650
+ - spec/dummy/db/migrate/20190226172951_create_user.rb
651
+ - spec/dummy/db/migrate/20210326140855_create_locations.rb
652
+ - spec/dummy/db/migrate/20210511141752_create_owners.rb
653
+ - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
654
+ - spec/dummy/db/migrate/20190226174951_create_tree.rb
655
+ - spec/dummy/db/schema.rb
656
+ - spec/dummy/Rakefile
657
+ - spec/lib/forest_liana/bootstrapper_spec.rb
658
+ - spec/services/forest_liana/ip_whitelist_checker_spec.rb
659
+ - spec/services/forest_liana/resources_getter_spec.rb
660
+ - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
661
+ - spec/services/forest_liana/permissions_formatter_spec.rb
662
+ - spec/services/forest_liana/filters_parser_spec.rb
663
+ - spec/services/forest_liana/line_stat_getter_spec.rb
664
+ - spec/services/forest_liana/apimap_sorter_spec.rb
665
+ - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
666
+ - spec/services/forest_liana/permissions_getter_spec.rb
667
+ - spec/services/forest_liana/schema_adapter_spec.rb
668
+ - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
669
+ - spec/helpers/forest_liana/schema_helper_spec.rb
670
+ - spec/helpers/forest_liana/query_helper_spec.rb
671
+ - spec/helpers/forest_liana/is_same_data_structure_helper_spec.rb
666
672
  - spec/rails_helper.rb
667
- - spec/requests/stats_spec.rb
668
- - spec/requests/resources_spec.rb
669
- - spec/requests/actions_controller_spec.rb
670
- - spec/requests/authentications_spec.rb