forest_liana 6.3.2 → 6.3.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/forest_liana/authentication_controller.rb +1 -1
- data/app/controllers/forest_liana/stats_controller.rb +5 -0
- data/app/services/forest_liana/line_stat_getter.rb +6 -4
- data/app/services/forest_liana/permissions_checker.rb +3 -4
- data/lib/forest_liana/bootstrapper.rb +14 -11
- data/lib/forest_liana/engine.rb +1 -1
- data/lib/forest_liana/version.rb +1 -1
- data/spec/dummy/app/models/owner.rb +2 -0
- data/spec/dummy/db/migrate/20210511141752_create_owners.rb +8 -0
- data/spec/dummy/db/schema.rb +6 -1
- data/spec/requests/stats_spec.rb +7 -5
- data/spec/services/forest_liana/line_stat_getter_spec.rb +50 -0
- metadata +137 -131
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a93e818cc7b5a0808dd33a6395f607dc5c3e659f69b407268f65ecc614017832
|
4
|
+
data.tar.gz: 41f0bb47b931b7042b20f8afeab44f2aa1ee9846a957de30c048e0fe575a6a9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
180
|
+
array_permission_infos = @query_request_info.values.filter_map{ |x| x unless x.nil? }
|
181
181
|
|
182
|
-
# NOTICE: pool_permissions
|
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
|
-
(
|
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."
|
data/lib/forest_liana/engine.rb
CHANGED
data/lib/forest_liana/version.rb
CHANGED
data/spec/dummy/db/schema.rb
CHANGED
@@ -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:
|
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
|
data/spec/requests/stats_spec.rb
CHANGED
@@ -72,12 +72,14 @@ describe "Stats", type: :request do
|
|
72
72
|
expect(response.status).to eq(404)
|
73
73
|
end
|
74
74
|
|
75
|
-
|
76
|
-
|
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
|
-
|
79
|
-
|
80
|
-
|
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.
|
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-
|
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:
|
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:
|
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/
|
506
|
-
- test/
|
507
|
-
- test/
|
508
|
-
- test/dummy/
|
509
|
-
- test/dummy/
|
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/
|
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/
|
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/
|
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/
|
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/
|
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/
|
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/
|
555
|
-
- test/dummy/
|
556
|
-
- test/dummy/
|
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/
|
565
|
+
- test/dummy/db/migrate/20150608131610_create_float_field.rb
|
575
566
|
- test/dummy/db/migrate/20160627172810_create_owner.rb
|
576
|
-
- test/dummy/db/
|
577
|
-
- test/dummy/
|
578
|
-
- test/dummy/
|
579
|
-
- test/dummy/
|
580
|
-
- test/dummy/
|
581
|
-
- test/
|
582
|
-
- test/
|
583
|
-
- test/
|
584
|
-
- test/
|
585
|
-
- test/
|
586
|
-
- test/
|
587
|
-
- test/
|
588
|
-
- test/
|
589
|
-
- test/
|
590
|
-
- test/
|
591
|
-
- test/
|
592
|
-
- test/
|
593
|
-
-
|
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/
|
597
|
-
- spec/
|
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/
|
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/
|
610
|
+
- spec/services/forest_liana/line_stat_getter_spec.rb
|
609
611
|
- spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
|
610
|
-
- spec/
|
611
|
-
- spec/
|
612
|
-
- spec/
|
613
|
-
- spec/
|
614
|
-
- spec/dummy/
|
615
|
-
- spec/dummy/
|
616
|
-
- spec/dummy/
|
617
|
-
- spec/dummy/
|
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/
|
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/
|
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/
|
644
|
-
- spec/dummy/
|
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/
|
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/
|
652
|
-
- spec/dummy/
|
653
|
-
- spec/dummy/
|
654
|
-
- spec/dummy/
|
655
|
-
- spec/dummy/
|
656
|
-
- spec/dummy/
|
657
|
-
- spec/dummy/
|
658
|
-
- spec/
|
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
|