forest_liana 6.3.2 → 6.3.7

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: 9ef103500f1ffd2d8ccf3778c90d54ffcf83348448a0693e5508f73c851ac3d5
4
- data.tar.gz: 825e75b4a37c788382e67eb4a9cc3b487ce18420cb652ba836b5ce6c7430769d
3
+ metadata.gz: a93e818cc7b5a0808dd33a6395f607dc5c3e659f69b407268f65ecc614017832
4
+ data.tar.gz: 41f0bb47b931b7042b20f8afeab44f2aa1ee9846a957de30c048e0fe575a6a9b
5
5
  SHA512:
6
- metadata.gz: 75b6c515ab034857ef5ab4eb683013466946528fb31df7cb9ad73bdbbdda18df6fdab44ee4cb6ef86e42356600b0988747c816e781cca19082184848b0329731
7
- data.tar.gz: 6790e0e3bbdb01ad881a5914d9e0151e7202b66747a60bfc30cbcebe1e4c39236e4b5423608f78278468b208d8af970214c310b1e90b4109f5e4a49202317c4b
6
+ metadata.gz: cc768ed1cbeef27e823ebd72c6899a2474a972e3fbe6b66a71097b6abd6488259cef0d9e3798f016ff5f7f59f506c35d52f4cd04f3744cfce346c3aa4af5715f
7
+ data.tar.gz: b3aef0960689302ee58eb8041ee1d76609728294c6d68281aaa4d55e9e55cbf129b791f4df3195609b8c2f9b55da1b253f25742fc18cc1c0d70577b34ac75419
@@ -5,7 +5,7 @@ module ForestLiana
5
5
  class AuthenticationController < ForestLiana::BaseController
6
6
  START_AUTHENTICATION_ROUTE = 'authentication'
7
7
  CALLBACK_AUTHENTICATION_ROUTE = 'authentication/callback'
8
- LOGOUT_ROUTE = 'authentication/logout';
8
+ LOGOUT_ROUTE = 'authentication/logout'
9
9
  PUBLIC_ROUTES = [
10
10
  "/#{START_AUTHENTICATION_ROUTE}",
11
11
  "/#{CALLBACK_AUTHENTICATION_ROUTE}",
@@ -89,6 +89,11 @@ module ForestLiana
89
89
  parameters.delete('controller');
90
90
  parameters.delete('action');
91
91
 
92
+ # NOTICE: Remove the field information from group_by_field => collection:id
93
+ if parameters['group_by_field']
94
+ parameters['group_by_field'] = parameters['group_by_field'].split(':').first
95
+ end
96
+
92
97
  return parameters;
93
98
  end
94
99
 
@@ -3,6 +3,9 @@ module ForestLiana
3
3
  attr_accessor :record
4
4
 
5
5
  def client_timezone
6
+ # As stated here https://github.com/ankane/groupdate#for-sqlite
7
+ # groupdate does not handle timezone for SQLite
8
+ return false if 'SQLite' == ActiveRecord::Base.connection.adapter_name
6
9
  @params[:timezone]
7
10
  end
8
11
 
@@ -26,10 +29,9 @@ module ForestLiana
26
29
  value = FiltersParser.new(@params[:filters], value, @params[:timezone]).apply_filters
27
30
  end
28
31
 
29
- value = value.send(time_range, group_by_date_field, {
30
- time_zone: client_timezone,
31
- week_start: :mon
32
- })
32
+ Groupdate.week_start = :monday
33
+
34
+ value = value.send(time_range, group_by_date_field, time_zone: client_timezone)
33
35
 
34
36
  value = value.send(@params[:aggregate].downcase, @params[:aggregate_field])
35
37
  .map do |k, v|
@@ -177,13 +177,12 @@ module ForestLiana
177
177
  return false unless pool_permissions
178
178
 
179
179
  # NOTICE: equivalent to Object.values in js & removes nil values
180
- array_query_request_info = @query_request_info.values.filter_map{ |x| x unless x.nil? }
180
+ array_permission_infos = @query_request_info.values.filter_map{ |x| x unless x.nil? }
181
181
 
182
- # NOTICE: pool_permissions contains the @query_request_info
183
- # we use the intersection between statPermission and @query_request_info
182
+ # NOTICE: Is there any pool_permissions containing the array_permission_infos
184
183
  return pool_permissions.any? {
185
184
  |statPermission|
186
- (array_query_request_info & statPermission.values) == array_query_request_info;
185
+ (array_permission_infos.all? { |info| statPermission.values.include?(info) });
187
186
  }
188
187
  end
189
188
 
@@ -53,6 +53,18 @@ module ForestLiana
53
53
  collection.actions.find {|action| action.name == action_name}
54
54
  end
55
55
 
56
+ def generate_action_hooks()
57
+ @collections_sent.each do |collection|
58
+ collection['actions'].each do |action|
59
+ c = get_collection(collection['name'])
60
+ a = get_action(c, action['name'])
61
+ load = !a.hooks.nil? && a.hooks.key?(:load) && a.hooks[:load].is_a?(Proc)
62
+ change = !a.hooks.nil? && a.hooks.key?(:change) && a.hooks[:change].is_a?(Hash) ? a.hooks[:change].keys : []
63
+ action['hooks'] = {:load => load, :change => change}
64
+ end
65
+ end
66
+ end
67
+
56
68
  def generate_apimap
57
69
  create_apimap
58
70
  require_lib_forest_liana
@@ -60,18 +72,8 @@ module ForestLiana
60
72
 
61
73
  if Rails.env.development?
62
74
  @collections_sent = ForestLiana.apimap.as_json
63
-
64
- @collections_sent.each do |collection|
65
- collection['actions'].each do |action|
66
- c = get_collection(collection['name'])
67
- a = get_action(c, action['name'])
68
- load = !a.hooks.nil? && a.hooks.key?(:load) && a.hooks[:load].is_a?(Proc)
69
- change = !a.hooks.nil? && a.hooks.key?(:change) && a.hooks[:change].is_a?(Hash) ? a.hooks[:change].keys : []
70
- action['hooks'] = {:load => load, :change => change}
71
- end
72
- end
73
-
74
75
  @meta_sent = ForestLiana.meta
76
+ generate_action_hooks
75
77
  SchemaFileUpdater.new(SCHEMA_FILENAME, @collections_sent, @meta_sent).perform()
76
78
  else
77
79
  if File.exists?(SCHEMA_FILENAME)
@@ -79,6 +81,7 @@ module ForestLiana
79
81
  content = JSON.parse(File.read(SCHEMA_FILENAME))
80
82
  @collections_sent = content['collections']
81
83
  @meta_sent = content['meta']
84
+ generate_action_hooks
82
85
  rescue JSON::JSONError
83
86
  FOREST_LOGGER.error "The content of .forestadmin-schema.json file is not a correct JSON."
84
87
  FOREST_LOGGER.error "The schema cannot be synchronized with Forest Admin servers."
@@ -66,7 +66,7 @@ module ForestLiana
66
66
  ActiveStorage::Attachment
67
67
  end
68
68
 
69
- if Rails::VERSION::MAJOR > 5 && defined?(Zeitwerk::Loader)
69
+ if Rails::VERSION::MAJOR > 5 && Rails.autoloaders.zeitwerk_enabled?
70
70
  Zeitwerk::Loader.eager_load_all
71
71
  else
72
72
  app.eager_load!
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "6.3.2"
2
+ VERSION = "6.3.7"
3
3
  end
@@ -0,0 +1,2 @@
1
+ class Owner < ActiveRecord::Base
2
+ end
@@ -0,0 +1,8 @@
1
+ class CreateOwners < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :owners do |t|
4
+ t.string :name
5
+ t.datetime :hired_at
6
+ end
7
+ end
8
+ end
@@ -10,7 +10,7 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 2021_03_26_140855) do
13
+ ActiveRecord::Schema.define(version: 2021_05_11_141752) do
14
14
 
15
15
  create_table "isle", force: :cascade do |t|
16
16
  t.string "name"
@@ -27,6 +27,11 @@ ActiveRecord::Schema.define(version: 2021_03_26_140855) do
27
27
  t.index ["island_id"], name: "index_locations_on_island_id"
28
28
  end
29
29
 
30
+ create_table "owners", force: :cascade do |t|
31
+ t.string "name"
32
+ t.datetime "hired_at"
33
+ end
34
+
30
35
  create_table "references", force: :cascade do |t|
31
36
  t.datetime "created_at", precision: 6, null: false
32
37
  t.datetime "updated_at", precision: 6, null: false
@@ -72,12 +72,14 @@ describe "Stats", type: :request do
72
72
  expect(response.status).to eq(404)
73
73
  end
74
74
 
75
- # it 'should respond 403 Forbidden' do
76
- # allow_any_instance_of(ForestLiana::PermissionsChecker).to receive(:is_authorized?) { false }
75
+ it 'should respond 403 Forbidden' do
76
+ allow_any_instance_of(ForestLiana::PermissionsChecker).to receive(:is_authorized?) { false }
77
+ # NOTICE: bypass : find_resource error
78
+ allow_any_instance_of(ForestLiana::StatsController).to receive(:find_resource) { true }
77
79
 
78
- # post '/forest/stats/Products', params: JSON.dump(params), headers: headers
79
- # expect(response.status).to eq(403)
80
- # end
80
+ post '/forest/stats/Products', params: JSON.dump(params), headers: headers
81
+ expect(response.status).to eq(403)
82
+ end
81
83
  end
82
84
 
83
85
  describe 'POST /stats' do
@@ -0,0 +1,50 @@
1
+ module ForestLiana
2
+ describe LineStatGetter do
3
+ describe 'Check client_timezone function' do
4
+ describe 'with a SQLite database' do
5
+ it 'should return false' do
6
+ expect(LineStatGetter.new(Owner, {
7
+ timezone: "Europe/Paris",
8
+ aggregate: "Count",
9
+ }).client_timezone).to eq(false)
10
+ end
11
+ end
12
+
13
+ describe 'with a non-SQLite database' do
14
+ it 'should return the timezone' do
15
+ ActiveRecord::Base.connection.stub(:adapter_name) { 'NotSQLite' }
16
+ expect(LineStatGetter.new(Owner, {
17
+ timezone: "Europe/Paris",
18
+ aggregate: "Count",
19
+ }).client_timezone).to eq('Europe/Paris')
20
+ end
21
+ end
22
+ end
23
+
24
+ describe 'Check perform function' do
25
+ describe 'Using a Count aggregation' do
26
+ describe 'Using a Week time range' do
27
+ it 'should return consistent data based on monday as week_start ' do
28
+
29
+ # Week should start on monday
30
+ # 08-05-2021 was a Saturday
31
+ Owner.create(name: 'Michel', hired_at: Date.parse('08-05-2021'));
32
+ Owner.create(name: 'Robert', hired_at: Date.parse('09-05-2021'));
33
+ Owner.create(name: 'José', hired_at: Date.parse('10-05-2021'));
34
+ Owner.create(name: 'Yves', hired_at: Date.parse('11-05-2021'));
35
+
36
+ stat = LineStatGetter.new(Owner, {
37
+ timezone: "Europe/Paris",
38
+ aggregate: "Count",
39
+ time_range: "Week",
40
+ group_by_date_field: "hired_at",
41
+ }).perform
42
+
43
+ expect(stat.value.find { |item| item[:label] == "W18-2021" }[:values][:value]).to eq(2)
44
+ expect(stat.value.find { |item| item[:label] == "W19-2021" }[:values][:value]).to eq(2)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
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.3.2
4
+ version: 6.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sandro Munda
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-27 00:00:00.000000000 Z
11
+ date: 2021-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: groupdate
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 2.5.2
89
+ version: 5.0.0
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 2.5.2
96
+ version: 5.0.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: useragent
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -326,6 +326,7 @@ files:
326
326
  - spec/dummy/app/helpers/application_helper.rb
327
327
  - spec/dummy/app/models/island.rb
328
328
  - spec/dummy/app/models/location.rb
329
+ - spec/dummy/app/models/owner.rb
329
330
  - spec/dummy/app/models/reference.rb
330
331
  - spec/dummy/app/models/tree.rb
331
332
  - spec/dummy/app/models/user.rb
@@ -360,6 +361,7 @@ files:
360
361
  - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
361
362
  - spec/dummy/db/migrate/20210326110524_create_references.rb
362
363
  - spec/dummy/db/migrate/20210326140855_create_locations.rb
364
+ - spec/dummy/db/migrate/20210511141752_create_owners.rb
363
365
  - spec/dummy/db/schema.rb
364
366
  - spec/dummy/lib/forest_liana/collections/location.rb
365
367
  - spec/dummy/lib/forest_liana/collections/user.rb
@@ -374,6 +376,7 @@ files:
374
376
  - spec/services/forest_liana/apimap_sorter_spec.rb
375
377
  - spec/services/forest_liana/filters_parser_spec.rb
376
378
  - spec/services/forest_liana/ip_whitelist_checker_spec.rb
379
+ - spec/services/forest_liana/line_stat_getter_spec.rb
377
380
  - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
378
381
  - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
379
382
  - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
@@ -478,7 +481,7 @@ homepage: https://github.com/ForestAdmin/forest-rails
478
481
  licenses:
479
482
  - GPL-3.0
480
483
  metadata: {}
481
- post_install_message:
484
+ post_install_message:
482
485
  rdoc_options: []
483
486
  require_paths:
484
487
  - lib
@@ -494,165 +497,168 @@ required_rubygems_version: !ruby/object:Gem::Requirement
494
497
  version: '0'
495
498
  requirements: []
496
499
  rubygems_version: 3.1.2
497
- signing_key:
500
+ signing_key:
498
501
  specification_version: 4
499
502
  summary: Official Rails Liana for Forest
500
503
  test_files:
504
+ - test/routing/route_test.rb
505
+ - test/fixtures/tree.yml
506
+ - test/fixtures/has_many_field.yml
507
+ - test/fixtures/serialize_field.yml
508
+ - test/fixtures/owner.yml
509
+ - test/fixtures/reference.yml
510
+ - test/fixtures/string_field.yml
511
+ - test/fixtures/belongs_to_field.yml
512
+ - test/fixtures/has_many_through_field.yml
513
+ - test/fixtures/has_one_field.yml
514
+ - test/test_helper.rb
515
+ - test/services/forest_liana/scope_validator_test.rb
501
516
  - test/services/forest_liana/operator_date_interval_parser_test.rb
517
+ - test/services/forest_liana/has_many_getter_test.rb
502
518
  - test/services/forest_liana/schema_adapter_test.rb
519
+ - test/services/forest_liana/pie_stat_getter_test.rb
503
520
  - test/services/forest_liana/value_stat_getter_test.rb
504
521
  - test/services/forest_liana/resource_updater_test.rb
505
- - test/services/forest_liana/scope_validator_test.rb
506
- - test/services/forest_liana/pie_stat_getter_test.rb
507
- - test/services/forest_liana/has_many_getter_test.rb
508
- - test/dummy/README.rdoc
509
- - test/dummy/config/environments/production.rb
510
- - test/dummy/config/environments/development.rb
511
- - test/dummy/config/environments/test.rb
512
- - test/dummy/config/application.rb
513
- - test/dummy/config/secrets.yml
514
- - test/dummy/config/initializers/assets.rb
515
- - test/dummy/config/initializers/wrap_parameters.rb
516
- - test/dummy/config/initializers/session_store.rb
517
- - test/dummy/config/initializers/mime_types.rb
518
- - test/dummy/config/initializers/inflections.rb
519
- - test/dummy/config/initializers/backtrace_silencers.rb
520
- - test/dummy/config/initializers/cookies_serializer.rb
521
- - test/dummy/config/initializers/filter_parameter_logging.rb
522
- - test/dummy/config/boot.rb
523
- - test/dummy/config/database.yml
524
- - test/dummy/config/environment.rb
525
- - test/dummy/config/routes.rb
526
- - test/dummy/config/locales/en.yml
527
- - test/dummy/public/favicon.ico
528
- - test/dummy/public/422.html
529
- - test/dummy/public/404.html
530
- - test/dummy/public/500.html
531
- - test/dummy/Rakefile
522
+ - test/forest_liana_test.rb
523
+ - test/dummy/bin/bundle
524
+ - test/dummy/bin/setup
525
+ - test/dummy/bin/rake
526
+ - test/dummy/bin/rails
532
527
  - test/dummy/config.ru
528
+ - test/dummy/public/500.html
529
+ - test/dummy/public/404.html
530
+ - test/dummy/public/422.html
531
+ - test/dummy/public/favicon.ico
532
+ - test/dummy/app/assets/stylesheets/application.css
533
+ - test/dummy/app/assets/config/manifest.js
534
+ - test/dummy/app/assets/javascripts/application.js
533
535
  - test/dummy/app/helpers/application_helper.rb
534
- - test/dummy/app/models/float_field.rb
536
+ - test/dummy/app/views/layouts/application.html.erb
535
537
  - test/dummy/app/models/has_and_belongs_to_many_field.rb
536
- - test/dummy/app/models/has_one_field.rb
537
- - test/dummy/app/models/serialize_field.rb
538
+ - test/dummy/app/models/decimal_field.rb
538
539
  - test/dummy/app/models/owner.rb
539
- - test/dummy/app/models/integer_field.rb
540
- - test/dummy/app/models/reference.rb
541
- - test/dummy/app/models/has_many_through_field.rb
542
540
  - test/dummy/app/models/boolean_field.rb
543
- - test/dummy/app/models/belongs_to_class_name_field.rb
544
- - test/dummy/app/models/decimal_field.rb
545
- - test/dummy/app/models/belongs_to_field.rb
541
+ - test/dummy/app/models/has_one_field.rb
546
542
  - test/dummy/app/models/has_many_class_name_field.rb
547
- - test/dummy/app/models/tree.rb
543
+ - test/dummy/app/models/has_many_through_field.rb
544
+ - test/dummy/app/models/has_many_field.rb
545
+ - test/dummy/app/models/belongs_to_field.rb
546
+ - test/dummy/app/models/integer_field.rb
547
+ - test/dummy/app/models/belongs_to_class_name_field.rb
548
548
  - test/dummy/app/models/polymorphic_field.rb
549
- - test/dummy/app/models/string_field.rb
549
+ - test/dummy/app/models/serialize_field.rb
550
+ - test/dummy/app/models/tree.rb
551
+ - test/dummy/app/models/float_field.rb
552
+ - test/dummy/app/models/reference.rb
550
553
  - test/dummy/app/models/date_field.rb
551
- - test/dummy/app/models/has_many_field.rb
552
- - test/dummy/app/views/layouts/application.html.erb
554
+ - test/dummy/app/models/string_field.rb
553
555
  - test/dummy/app/controllers/application_controller.rb
554
- - test/dummy/app/assets/config/manifest.js
555
- - test/dummy/app/assets/stylesheets/application.css
556
- - test/dummy/app/assets/javascripts/application.js
556
+ - test/dummy/db/schema.rb
557
+ - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
558
+ - test/dummy/db/migrate/20150608130516_create_date_field.rb
559
+ - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
557
560
  - test/dummy/db/migrate/20150608132621_create_string_field.rb
558
- - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
559
- - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
560
561
  - test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
561
- - test/dummy/db/migrate/20150608131610_create_float_field.rb
562
- - test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
563
- - test/dummy/db/migrate/20181111162121_create_references_table.rb
564
562
  - test/dummy/db/migrate/20150608131430_create_integer_field.rb
565
- - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
566
- - test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
567
- - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
568
- - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
569
- - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
570
563
  - test/dummy/db/migrate/20160627172951_create_tree.rb
571
- - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
572
- - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
573
564
  - test/dummy/db/migrate/20160628173505_add_timestamps.rb
574
- - test/dummy/db/migrate/20150608130516_create_date_field.rb
565
+ - test/dummy/db/migrate/20150608131610_create_float_field.rb
575
566
  - test/dummy/db/migrate/20160627172810_create_owner.rb
576
- - test/dummy/db/schema.rb
577
- - test/dummy/bin/bundle
578
- - test/dummy/bin/setup
579
- - test/dummy/bin/rails
580
- - test/dummy/bin/rake
581
- - test/forest_liana_test.rb
582
- - test/routing/route_test.rb
583
- - test/fixtures/belongs_to_field.yml
584
- - test/fixtures/has_many_through_field.yml
585
- - test/fixtures/owner.yml
586
- - test/fixtures/string_field.yml
587
- - test/fixtures/has_many_field.yml
588
- - test/fixtures/has_one_field.yml
589
- - test/fixtures/serialize_field.yml
590
- - test/fixtures/tree.yml
591
- - test/fixtures/reference.yml
592
- - test/test_helper.rb
593
- - spec/helpers/forest_liana/schema_helper_spec.rb
567
+ - test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
568
+ - test/dummy/db/migrate/20150608132159_create_boolean_field.rb
569
+ - test/dummy/db/migrate/20170614141921_create_serialize_field.rb
570
+ - test/dummy/db/migrate/20150608150016_create_has_many_field.rb
571
+ - test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
572
+ - test/dummy/db/migrate/20150608131603_create_decimal_field.rb
573
+ - test/dummy/db/migrate/20181111162121_create_references_table.rb
574
+ - test/dummy/db/migrate/20150608133044_create_has_one_field.rb
575
+ - test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
576
+ - test/dummy/README.rdoc
577
+ - test/dummy/Rakefile
578
+ - test/dummy/config/initializers/inflections.rb
579
+ - test/dummy/config/initializers/filter_parameter_logging.rb
580
+ - test/dummy/config/initializers/wrap_parameters.rb
581
+ - test/dummy/config/initializers/mime_types.rb
582
+ - test/dummy/config/initializers/assets.rb
583
+ - test/dummy/config/initializers/backtrace_silencers.rb
584
+ - test/dummy/config/initializers/session_store.rb
585
+ - test/dummy/config/initializers/cookies_serializer.rb
586
+ - test/dummy/config/secrets.yml
587
+ - test/dummy/config/database.yml
588
+ - test/dummy/config/boot.rb
589
+ - test/dummy/config/locales/en.yml
590
+ - test/dummy/config/environment.rb
591
+ - test/dummy/config/application.rb
592
+ - test/dummy/config/environments/production.rb
593
+ - test/dummy/config/environments/development.rb
594
+ - test/dummy/config/environments/test.rb
595
+ - test/dummy/config/routes.rb
596
+ - spec/spec_helper.rb
597
+ - spec/rails_helper.rb
594
598
  - spec/helpers/forest_liana/is_same_data_structure_helper_spec.rb
599
+ - spec/helpers/forest_liana/schema_helper_spec.rb
595
600
  - spec/helpers/forest_liana/query_helper_spec.rb
596
- - spec/requests/resources_spec.rb
597
- - spec/requests/authentications_spec.rb
598
- - spec/requests/stats_spec.rb
599
- - spec/requests/actions_controller_spec.rb
600
- - spec/spec_helper.rb
601
- - spec/services/forest_liana/schema_adapter_spec.rb
601
+ - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
602
+ - spec/services/forest_liana/resources_getter_spec.rb
602
603
  - spec/services/forest_liana/filters_parser_spec.rb
603
604
  - spec/services/forest_liana/permissions_getter_spec.rb
604
- - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
605
605
  - spec/services/forest_liana/ip_whitelist_checker_spec.rb
606
- - spec/services/forest_liana/resources_getter_spec.rb
606
+ - spec/services/forest_liana/schema_adapter_spec.rb
607
+ - spec/services/forest_liana/permissions_formatter_spec.rb
608
+ - spec/services/forest_liana/permissions_checker_live_queries_spec.rb
607
609
  - spec/services/forest_liana/apimap_sorter_spec.rb
608
- - spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
610
+ - spec/services/forest_liana/line_stat_getter_spec.rb
609
611
  - spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
610
- - spec/services/forest_liana/permissions_formatter_spec.rb
611
- - spec/dummy/README.rdoc
612
- - spec/dummy/config/environments/production.rb
613
- - spec/dummy/config/environments/development.rb
614
- - spec/dummy/config/environments/test.rb
615
- - spec/dummy/config/application.rb
616
- - spec/dummy/config/secrets.yml
617
- - spec/dummy/config/initializers/assets.rb
618
- - spec/dummy/config/initializers/wrap_parameters.rb
619
- - spec/dummy/config/initializers/session_store.rb
620
- - spec/dummy/config/initializers/mime_types.rb
621
- - spec/dummy/config/initializers/inflections.rb
622
- - spec/dummy/config/initializers/backtrace_silencers.rb
623
- - spec/dummy/config/initializers/cookies_serializer.rb
624
- - spec/dummy/config/initializers/forest_liana.rb
625
- - spec/dummy/config/initializers/filter_parameter_logging.rb
626
- - spec/dummy/config/boot.rb
627
- - spec/dummy/config/database.yml
628
- - spec/dummy/config/environment.rb
629
- - spec/dummy/config/routes.rb
630
- - spec/dummy/lib/forest_liana/collections/location.rb
631
- - spec/dummy/lib/forest_liana/collections/user.rb
632
- - spec/dummy/Rakefile
612
+ - spec/requests/actions_controller_spec.rb
613
+ - spec/requests/stats_spec.rb
614
+ - spec/requests/authentications_spec.rb
615
+ - spec/requests/resources_spec.rb
616
+ - spec/dummy/bin/bundle
617
+ - spec/dummy/bin/setup
618
+ - spec/dummy/bin/rake
619
+ - spec/dummy/bin/rails
633
620
  - spec/dummy/config.ru
621
+ - spec/dummy/app/assets/stylesheets/application.css
622
+ - spec/dummy/app/assets/config/manifest.js
623
+ - spec/dummy/app/assets/javascripts/application.js
634
624
  - spec/dummy/app/helpers/application_helper.rb
635
- - spec/dummy/app/models/location.rb
636
- - spec/dummy/app/models/reference.rb
625
+ - spec/dummy/app/views/layouts/application.html.erb
637
626
  - spec/dummy/app/models/user.rb
638
- - spec/dummy/app/models/tree.rb
627
+ - spec/dummy/app/models/owner.rb
639
628
  - spec/dummy/app/models/island.rb
629
+ - spec/dummy/app/models/location.rb
630
+ - spec/dummy/app/models/tree.rb
631
+ - spec/dummy/app/models/reference.rb
640
632
  - spec/dummy/app/config/routes.rb
641
- - spec/dummy/app/views/layouts/application.html.erb
642
633
  - spec/dummy/app/controllers/application_controller.rb
643
- - spec/dummy/app/assets/config/manifest.js
644
- - spec/dummy/app/assets/stylesheets/application.css
645
- - spec/dummy/app/assets/javascripts/application.js
634
+ - spec/dummy/db/schema.rb
635
+ - spec/dummy/db/migrate/20210511141752_create_owners.rb
646
636
  - spec/dummy/db/migrate/20190226174951_create_tree.rb
637
+ - spec/dummy/db/migrate/20210326140855_create_locations.rb
647
638
  - spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
648
- - spec/dummy/db/migrate/20190226173051_create_isle.rb
639
+ - spec/dummy/db/migrate/20210326110524_create_references.rb
649
640
  - spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
641
+ - spec/dummy/db/migrate/20190226173051_create_isle.rb
650
642
  - spec/dummy/db/migrate/20190226172951_create_user.rb
651
- - spec/dummy/db/migrate/20210326140855_create_locations.rb
652
- - spec/dummy/db/migrate/20210326110524_create_references.rb
653
- - spec/dummy/db/schema.rb
654
- - spec/dummy/bin/bundle
655
- - spec/dummy/bin/setup
656
- - spec/dummy/bin/rails
657
- - spec/dummy/bin/rake
658
- - spec/rails_helper.rb
643
+ - spec/dummy/lib/forest_liana/collections/user.rb
644
+ - spec/dummy/lib/forest_liana/collections/location.rb
645
+ - spec/dummy/README.rdoc
646
+ - spec/dummy/Rakefile
647
+ - spec/dummy/config/initializers/inflections.rb
648
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
649
+ - spec/dummy/config/initializers/wrap_parameters.rb
650
+ - spec/dummy/config/initializers/mime_types.rb
651
+ - spec/dummy/config/initializers/forest_liana.rb
652
+ - spec/dummy/config/initializers/assets.rb
653
+ - spec/dummy/config/initializers/backtrace_silencers.rb
654
+ - spec/dummy/config/initializers/session_store.rb
655
+ - spec/dummy/config/initializers/cookies_serializer.rb
656
+ - spec/dummy/config/secrets.yml
657
+ - spec/dummy/config/database.yml
658
+ - spec/dummy/config/boot.rb
659
+ - spec/dummy/config/environment.rb
660
+ - spec/dummy/config/application.rb
661
+ - spec/dummy/config/environments/production.rb
662
+ - spec/dummy/config/environments/development.rb
663
+ - spec/dummy/config/environments/test.rb
664
+ - spec/dummy/config/routes.rb