forest_liana 6.0.0.pre.beta.3 → 6.0.3
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 +4 -4
- data/app/controllers/forest_liana/actions_controller.rb +12 -2
- data/app/controllers/forest_liana/authentication_controller.rb +5 -21
- data/app/serializers/forest_liana/stripe_invoice_serializer.rb +5 -5
- data/app/services/forest_liana/authentication.rb +0 -2
- data/app/services/forest_liana/authorization_getter.rb +23 -21
- data/app/services/forest_liana/oidc_client_manager.rb +9 -5
- data/app/services/forest_liana/resource_creator.rb +1 -1
- data/app/services/forest_liana/resource_updater.rb +3 -3
- data/app/services/forest_liana/schema_utils.rb +8 -3
- data/app/services/forest_liana/stripe_invoice_getter.rb +1 -1
- data/app/services/forest_liana/stripe_invoices_getter.rb +1 -1
- data/app/services/forest_liana/stripe_source_getter.rb +1 -1
- data/app/services/forest_liana/stripe_sources_getter.rb +1 -1
- data/config/initializers/error-messages.rb +3 -0
- data/config/initializers/errors.rb +21 -2
- data/config/routes.rb +0 -4
- data/lib/forest_liana.rb +1 -0
- data/lib/forest_liana/bootstrapper.rb +12 -5
- data/lib/forest_liana/version.rb +1 -1
- data/lib/generators/forest_liana/install_generator.rb +13 -5
- data/spec/requests/actions_controller_spec.rb +49 -1
- data/spec/requests/authentications_spec.rb +7 -20
- data/test/routing/route_test.rb +0 -12
- data/test/services/forest_liana/resources_getter_test.rb +1 -1
- metadata +119 -154
- data/app/controllers/forest_liana/sessions_controller.rb +0 -95
- data/app/serializers/forest_liana/session_serializer.rb +0 -33
- data/app/services/forest_liana/login_handler.rb +0 -99
- data/app/services/forest_liana/two_factor_registration_confirmer.rb +0 -36
- data/app/services/forest_liana/user_secret_creator.rb +0 -26
- data/spec/requests/sessions_spec.rb +0 -53
@@ -35,6 +35,11 @@ describe 'Requesting Actions routes', :type => :request do
|
|
35
35
|
type: 'Enum',
|
36
36
|
enums: %w[a b c],
|
37
37
|
}
|
38
|
+
multiple_enum = {
|
39
|
+
field: 'multipleEnum',
|
40
|
+
type: ['Enum'],
|
41
|
+
enums: %w[a b c],
|
42
|
+
}
|
38
43
|
|
39
44
|
action_definition = {
|
40
45
|
name: 'my_action',
|
@@ -95,12 +100,28 @@ describe 'Requesting Actions routes', :type => :request do
|
|
95
100
|
}
|
96
101
|
}
|
97
102
|
}
|
103
|
+
|
104
|
+
multiple_enums_action_definition = {
|
105
|
+
name: 'multiple_enums_action',
|
106
|
+
fields: [foo, multiple_enum],
|
107
|
+
hooks: {
|
108
|
+
:change => {
|
109
|
+
'foo' => -> (context) {
|
110
|
+
fields = context[:fields]
|
111
|
+
fields['multipleEnum'][:enums] = %w[c d z]
|
112
|
+
return fields
|
113
|
+
}
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
98
118
|
action = ForestLiana::Model::Action.new(action_definition)
|
99
119
|
fail_action = ForestLiana::Model::Action.new(fail_action_definition)
|
100
120
|
cheat_action = ForestLiana::Model::Action.new(cheat_action_definition)
|
101
121
|
enums_action = ForestLiana::Model::Action.new(enums_action_definition)
|
122
|
+
multiple_enums_action = ForestLiana::Model::Action.new(multiple_enums_action_definition)
|
102
123
|
island = ForestLiana.apimap.find {|collection| collection.name.to_s == ForestLiana.name_for(Island)}
|
103
|
-
island.actions = [action, fail_action, cheat_action, enums_action]
|
124
|
+
island.actions = [action, fail_action, cheat_action, enums_action, multiple_enums_action]
|
104
125
|
|
105
126
|
describe 'call /load' do
|
106
127
|
params = {recordIds: [1], collectionName: 'Island'}
|
@@ -169,6 +190,33 @@ describe 'Requesting Actions routes', :type => :request do
|
|
169
190
|
expect(JSON.parse(response.body)).to eq({'fields' => [expected_foo.stringify_keys, expected_enum.stringify_keys]})
|
170
191
|
end
|
171
192
|
|
193
|
+
it 'should not reset value when every enum values are in the enums definition' do
|
194
|
+
updated_multiple_enum = multiple_enum.clone.merge({:previousValue => nil, :value => %w[c]})
|
195
|
+
p = {recordIds: [1], fields: [foo, updated_multiple_enum], collectionName: 'Island', changedField: 'foo'}
|
196
|
+
post '/forest/actions/multiple_enums_action/hooks/change', params: JSON.dump(p), headers: { 'CONTENT_TYPE' => 'application/json' }
|
197
|
+
expect(response.status).to eq(200)
|
198
|
+
|
199
|
+
expected_multiple_enum = updated_multiple_enum.clone.merge({ :enums => %w[c d z], :widgetEdit => nil, :value => %w[c]})
|
200
|
+
expected_multiple_enum.delete(:widget)
|
201
|
+
expected_foo = foo.clone.merge({ :widgetEdit => nil})
|
202
|
+
expected_foo.delete(:widget)
|
203
|
+
|
204
|
+
expect(JSON.parse(response.body)).to eq({'fields' => [expected_foo.stringify_keys, expected_multiple_enum.stringify_keys]})
|
205
|
+
end
|
206
|
+
|
207
|
+
it 'should reset value when one of the enum values is not in the enums definition' do
|
208
|
+
wrongly_updated_multiple_enum = multiple_enum.clone.merge({:previousValue => nil, :value => %w[a b]})
|
209
|
+
p = {recordIds: [1], fields: [foo, wrongly_updated_multiple_enum], collectionName: 'Island', changedField: 'foo'}
|
210
|
+
post '/forest/actions/multiple_enums_action/hooks/change', params: JSON.dump(p), headers: { 'CONTENT_TYPE' => 'application/json' }
|
211
|
+
expect(response.status).to eq(200)
|
212
|
+
|
213
|
+
expected_multiple_enum = wrongly_updated_multiple_enum.clone.merge({ :enums => %w[c d z], :widgetEdit => nil, :value => nil })
|
214
|
+
expected_multiple_enum.delete(:widget)
|
215
|
+
expected_foo = foo.clone.merge({ :widgetEdit => nil})
|
216
|
+
expected_foo.delete(:widget)
|
217
|
+
|
218
|
+
expect(JSON.parse(response.body)).to eq({'fields' => [expected_foo.stringify_keys, expected_multiple_enum.stringify_keys]})
|
219
|
+
end
|
172
220
|
end
|
173
221
|
end
|
174
222
|
end
|
@@ -33,12 +33,13 @@ describe "Authentications", type: :request do
|
|
33
33
|
}
|
34
34
|
end
|
35
35
|
|
36
|
-
it "should respond with a
|
37
|
-
expect(response).to have_http_status(
|
36
|
+
it "should respond with a 200 code" do
|
37
|
+
expect(response).to have_http_status(200)
|
38
38
|
end
|
39
39
|
|
40
40
|
it "should return a valid authentication url" do
|
41
|
-
|
41
|
+
body = JSON.parse(response.body, :symbolize_names => true)
|
42
|
+
expect(body[:authorizationUrl]).to eq('https://api.forestadmin.com/oidc/auth?client_id=random_id&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fforest%2Fauthentication%2Fcallback&response_type=code&scope=openid%20email%20profile&state=%7B%22renderingId%22%3D%3E42%7D')
|
42
43
|
end
|
43
44
|
end
|
44
45
|
|
@@ -59,10 +60,9 @@ describe "Authentications", type: :request do
|
|
59
60
|
end
|
60
61
|
|
61
62
|
it "should return a valid authentication token" do
|
62
|
-
|
63
|
-
expect(session_cookie).to match(/^forest_session_token=[^;]+; path=\/; expires=[^;]+; secure; HttpOnly$/)
|
63
|
+
body = JSON.parse(response.body, :symbolize_names => true);
|
64
64
|
|
65
|
-
token =
|
65
|
+
token = body[:token]
|
66
66
|
decoded = JWT.decode(token, ForestLiana.auth_secret, true, { algorithm: 'HS256' })[0]
|
67
67
|
|
68
68
|
expected_token_data = {
|
@@ -75,31 +75,18 @@ describe "Authentications", type: :request do
|
|
75
75
|
}
|
76
76
|
|
77
77
|
expect(decoded).to include(expected_token_data)
|
78
|
-
expect(
|
78
|
+
expect(body).to eq({ token: token, tokenData: decoded.deep_symbolize_keys! })
|
79
79
|
expect(response).to have_http_status(200)
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
83
|
describe "POST /authentication/logout" do
|
84
84
|
before() do
|
85
|
-
cookies['forest_session_token'] = {
|
86
|
-
value: 'eyJhbGciOiJIUzI1NiJ9.eyJpZCI6NjY2LCJlbWFpbCI6ImFsaWNlQGZvcmVzdGFkbWluLmNvbSIsImZpcnN0X25hbWUiOiJBbGljZSIsImxhc3RfbmFtZSI6IkRvZSIsInRlYW0iOjEsInJlbmRlcmluZ19pZCI6IjQyIiwiZXhwIjoxNjA4MDQ5MTI2fQ.5xaMxjUjE3wKldBsj3wW0BP9GHnnMqQi2Kpde8cIHEw',
|
87
|
-
path: '/',
|
88
|
-
expires: Time.now.to_i + 14.days,
|
89
|
-
secure: true,
|
90
|
-
httponly: true
|
91
|
-
}
|
92
85
|
post ForestLiana::Engine.routes.url_helpers.authentication_logout_path, params: { :renderingId => 42 }, :headers => headers
|
93
|
-
cookies.delete('forest_session_token')
|
94
86
|
end
|
95
87
|
|
96
88
|
it "should respond with a 204 code" do
|
97
89
|
expect(response).to have_http_status(204)
|
98
90
|
end
|
99
|
-
|
100
|
-
it "should invalidate token from browser" do
|
101
|
-
invalidated_session_cookie = response.headers['set-cookie']
|
102
|
-
expect(invalidated_session_cookie).to match(/^forest_session_token=[^;]+; path=\/; expires=Thu, 01 Jan 1970 00:00:00 GMT; secure; HttpOnly$/)
|
103
|
-
end
|
104
91
|
end
|
105
92
|
end
|
data/test/routing/route_test.rb
CHANGED
@@ -12,18 +12,6 @@ module ForestLiana
|
|
12
12
|
controller: 'forest_liana/apimaps', action: 'index'
|
13
13
|
})
|
14
14
|
|
15
|
-
# Session
|
16
|
-
assert_routing({
|
17
|
-
method: 'post', path: 'sessions'
|
18
|
-
}, {
|
19
|
-
controller: 'forest_liana/sessions', action: 'create_with_password'
|
20
|
-
})
|
21
|
-
assert_routing({
|
22
|
-
method: 'post', path: 'sessions-google'
|
23
|
-
}, {
|
24
|
-
controller: 'forest_liana/sessions', action: 'create_with_google'
|
25
|
-
})
|
26
|
-
|
27
15
|
# Associations
|
28
16
|
assert_routing({
|
29
17
|
method: 'get', path: ':collection/:id/relationships/:association_name'
|
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.0.
|
4
|
+
version: 6.0.3
|
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:
|
11
|
+
date: 2021-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -122,34 +122,6 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rotp
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :runtime
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: base32
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :runtime
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
125
|
- !ruby/object:Gem::Dependency
|
154
126
|
name: httparty
|
155
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -246,7 +218,6 @@ files:
|
|
246
218
|
- app/controllers/forest_liana/mixpanel_controller.rb
|
247
219
|
- app/controllers/forest_liana/resources_controller.rb
|
248
220
|
- app/controllers/forest_liana/router.rb
|
249
|
-
- app/controllers/forest_liana/sessions_controller.rb
|
250
221
|
- app/controllers/forest_liana/smart_actions_controller.rb
|
251
222
|
- app/controllers/forest_liana/stats_controller.rb
|
252
223
|
- app/controllers/forest_liana/stripe_controller.rb
|
@@ -267,7 +238,6 @@ files:
|
|
267
238
|
- app/serializers/forest_liana/mixpanel_event_serializer.rb
|
268
239
|
- app/serializers/forest_liana/schema_serializer.rb
|
269
240
|
- app/serializers/forest_liana/serializer_factory.rb
|
270
|
-
- app/serializers/forest_liana/session_serializer.rb
|
271
241
|
- app/serializers/forest_liana/stat_serializer.rb
|
272
242
|
- app/serializers/forest_liana/stripe_bank_account_serializer.rb
|
273
243
|
- app/serializers/forest_liana/stripe_card_serializer.rb
|
@@ -294,7 +264,6 @@ files:
|
|
294
264
|
- app/services/forest_liana/leaderboard_stat_getter.rb
|
295
265
|
- app/services/forest_liana/line_stat_getter.rb
|
296
266
|
- app/services/forest_liana/live_query_checker.rb
|
297
|
-
- app/services/forest_liana/login_handler.rb
|
298
267
|
- app/services/forest_liana/mixpanel_last_events_getter.rb
|
299
268
|
- app/services/forest_liana/objective_stat_getter.rb
|
300
269
|
- app/services/forest_liana/oidc_client_manager.rb
|
@@ -326,8 +295,6 @@ files:
|
|
326
295
|
- app/services/forest_liana/stripe_subscription_getter.rb
|
327
296
|
- app/services/forest_liana/stripe_subscriptions_getter.rb
|
328
297
|
- app/services/forest_liana/token.rb
|
329
|
-
- app/services/forest_liana/two_factor_registration_confirmer.rb
|
330
|
-
- app/services/forest_liana/user_secret_creator.rb
|
331
298
|
- app/services/forest_liana/utils/beta_schema_utils.rb
|
332
299
|
- app/services/forest_liana/value_stat_getter.rb
|
333
300
|
- app/views/layouts/forest_liana/application.html.erb
|
@@ -397,7 +364,6 @@ files:
|
|
397
364
|
- spec/requests/actions_controller_spec.rb
|
398
365
|
- spec/requests/authentications_spec.rb
|
399
366
|
- spec/requests/resources_spec.rb
|
400
|
-
- spec/requests/sessions_spec.rb
|
401
367
|
- spec/services/forest_liana/apimap_sorter_spec.rb
|
402
368
|
- spec/services/forest_liana/filters_parser_spec.rb
|
403
369
|
- spec/services/forest_liana/ip_whitelist_checker_spec.rb
|
@@ -503,7 +469,7 @@ homepage: https://github.com/ForestAdmin/forest-rails
|
|
503
469
|
licenses:
|
504
470
|
- GPL-3.0
|
505
471
|
metadata: {}
|
506
|
-
post_install_message:
|
472
|
+
post_install_message:
|
507
473
|
rdoc_options: []
|
508
474
|
require_paths:
|
509
475
|
- lib
|
@@ -514,162 +480,161 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
514
480
|
version: '0'
|
515
481
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
516
482
|
requirements:
|
517
|
-
- - "
|
483
|
+
- - ">="
|
518
484
|
- !ruby/object:Gem::Version
|
519
|
-
version:
|
485
|
+
version: '0'
|
520
486
|
requirements: []
|
521
|
-
rubygems_version: 3.
|
522
|
-
signing_key:
|
487
|
+
rubygems_version: 3.1.2
|
488
|
+
signing_key:
|
523
489
|
specification_version: 4
|
524
490
|
summary: Official Rails Liana for Forest
|
525
491
|
test_files:
|
526
|
-
- test/
|
527
|
-
- test/
|
528
|
-
- test/
|
529
|
-
- test/
|
530
|
-
- test/
|
531
|
-
- test/
|
532
|
-
- test/
|
533
|
-
- test/
|
534
|
-
- test/
|
535
|
-
- test/
|
536
|
-
- test/
|
537
|
-
- test/
|
538
|
-
- test/
|
539
|
-
- test/
|
540
|
-
- test/
|
541
|
-
- test/
|
542
|
-
- test/
|
543
|
-
- test/dummy/
|
492
|
+
- test/dummy/config/application.rb
|
493
|
+
- test/dummy/config/database.yml
|
494
|
+
- test/dummy/config/environment.rb
|
495
|
+
- test/dummy/config/locales/en.yml
|
496
|
+
- test/dummy/config/secrets.yml
|
497
|
+
- test/dummy/config/environments/development.rb
|
498
|
+
- test/dummy/config/environments/test.rb
|
499
|
+
- test/dummy/config/environments/production.rb
|
500
|
+
- test/dummy/config/boot.rb
|
501
|
+
- test/dummy/config/initializers/session_store.rb
|
502
|
+
- test/dummy/config/initializers/mime_types.rb
|
503
|
+
- test/dummy/config/initializers/cookies_serializer.rb
|
504
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
505
|
+
- test/dummy/config/initializers/inflections.rb
|
506
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
507
|
+
- test/dummy/config/initializers/assets.rb
|
508
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
509
|
+
- test/dummy/config/routes.rb
|
510
|
+
- test/dummy/app/assets/config/manifest.js
|
511
|
+
- test/dummy/app/assets/stylesheets/application.css
|
512
|
+
- test/dummy/app/assets/javascripts/application.js
|
544
513
|
- test/dummy/app/views/layouts/application.html.erb
|
545
|
-
- test/dummy/app/
|
514
|
+
- test/dummy/app/controllers/application_controller.rb
|
515
|
+
- test/dummy/app/models/tree.rb
|
516
|
+
- test/dummy/app/models/reference.rb
|
517
|
+
- test/dummy/app/models/belongs_to_field.rb
|
546
518
|
- test/dummy/app/models/string_field.rb
|
547
|
-
- test/dummy/app/models/has_and_belongs_to_many_field.rb
|
548
519
|
- test/dummy/app/models/has_many_through_field.rb
|
549
520
|
- test/dummy/app/models/has_many_class_name_field.rb
|
550
|
-
- test/dummy/app/models/has_one_field.rb
|
551
521
|
- test/dummy/app/models/date_field.rb
|
522
|
+
- test/dummy/app/models/polymorphic_field.rb
|
552
523
|
- test/dummy/app/models/boolean_field.rb
|
553
|
-
- test/dummy/app/models/float_field.rb
|
554
|
-
- test/dummy/app/models/reference.rb
|
555
524
|
- test/dummy/app/models/belongs_to_class_name_field.rb
|
556
|
-
- test/dummy/app/models/
|
557
|
-
- test/dummy/app/models/
|
525
|
+
- test/dummy/app/models/has_one_field.rb
|
526
|
+
- test/dummy/app/models/has_many_field.rb
|
527
|
+
- test/dummy/app/models/has_and_belongs_to_many_field.rb
|
558
528
|
- test/dummy/app/models/decimal_field.rb
|
529
|
+
- test/dummy/app/models/owner.rb
|
559
530
|
- test/dummy/app/models/serialize_field.rb
|
560
531
|
- test/dummy/app/models/integer_field.rb
|
561
|
-
- test/dummy/app/models/
|
562
|
-
- test/dummy/app/models/owner.rb
|
532
|
+
- test/dummy/app/models/float_field.rb
|
563
533
|
- test/dummy/app/helpers/application_helper.rb
|
564
|
-
- test/dummy/app/assets/javascripts/application.js
|
565
|
-
- test/dummy/app/assets/stylesheets/application.css
|
566
|
-
- test/dummy/app/assets/config/manifest.js
|
567
|
-
- test/dummy/app/controllers/application_controller.rb
|
568
534
|
- test/dummy/Rakefile
|
535
|
+
- test/dummy/config.ru
|
536
|
+
- test/dummy/README.rdoc
|
537
|
+
- test/dummy/bin/rails
|
569
538
|
- test/dummy/bin/rake
|
570
539
|
- test/dummy/bin/bundle
|
571
|
-
- test/dummy/bin/rails
|
572
540
|
- test/dummy/bin/setup
|
541
|
+
- test/dummy/public/favicon.ico
|
542
|
+
- test/dummy/public/422.html
|
573
543
|
- test/dummy/public/404.html
|
574
544
|
- test/dummy/public/500.html
|
575
|
-
- test/dummy/
|
576
|
-
- test/dummy/public/favicon.ico
|
577
|
-
- test/dummy/config.ru
|
578
|
-
- test/dummy/db/migrate/20181111162121_create_references_table.rb
|
545
|
+
- test/dummy/db/schema.rb
|
579
546
|
- test/dummy/db/migrate/20150608131430_create_integer_field.rb
|
580
|
-
- test/dummy/db/migrate/
|
547
|
+
- test/dummy/db/migrate/20181111162121_create_references_table.rb
|
548
|
+
- test/dummy/db/migrate/20150608130516_create_date_field.rb
|
581
549
|
- test/dummy/db/migrate/20160627172810_create_owner.rb
|
582
|
-
- test/dummy/db/migrate/
|
550
|
+
- test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
|
551
|
+
- test/dummy/db/migrate/20170614141921_create_serialize_field.rb
|
583
552
|
- test/dummy/db/migrate/20150608132159_create_boolean_field.rb
|
584
|
-
- test/dummy/db/migrate/20150608131603_create_decimal_field.rb
|
585
553
|
- test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
|
554
|
+
- test/dummy/db/migrate/20160627172951_create_tree.rb
|
555
|
+
- test/dummy/db/migrate/20150608132621_create_string_field.rb
|
556
|
+
- test/dummy/db/migrate/20150608150016_create_has_many_field.rb
|
586
557
|
- test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
|
587
|
-
- test/dummy/db/migrate/
|
558
|
+
- test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
|
588
559
|
- 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/20150609114636_create_belongs_to_class_name_field.rb
|
591
|
-
- test/dummy/db/migrate/20170614141921_create_serialize_field.rb
|
592
|
-
- test/dummy/db/migrate/20150608132621_create_string_field.rb
|
593
|
-
- test/dummy/db/migrate/20150608133044_create_has_one_field.rb
|
594
560
|
- test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
|
595
|
-
- test/dummy/db/migrate/
|
596
|
-
- test/dummy/db/migrate/
|
597
|
-
- test/dummy/db/
|
598
|
-
- test/dummy/
|
599
|
-
- test/
|
600
|
-
- test/
|
601
|
-
- test/
|
602
|
-
- test/
|
603
|
-
- test/
|
604
|
-
- test/
|
605
|
-
- test/
|
606
|
-
- test/
|
607
|
-
- test/
|
608
|
-
- test/
|
609
|
-
- test/
|
610
|
-
- test/
|
611
|
-
- test/
|
612
|
-
- test/
|
613
|
-
- test/
|
614
|
-
- test/
|
615
|
-
- test/dummy/config/database.yml
|
616
|
-
- test/forest_liana_test.rb
|
561
|
+
- test/dummy/db/migrate/20160628173505_add_timestamps.rb
|
562
|
+
- test/dummy/db/migrate/20150608133044_create_has_one_field.rb
|
563
|
+
- test/dummy/db/migrate/20150608131610_create_float_field.rb
|
564
|
+
- test/dummy/db/migrate/20150608131603_create_decimal_field.rb
|
565
|
+
- test/fixtures/tree.yml
|
566
|
+
- test/fixtures/has_many_through_field.yml
|
567
|
+
- test/fixtures/owner.yml
|
568
|
+
- test/fixtures/has_many_field.yml
|
569
|
+
- test/fixtures/string_field.yml
|
570
|
+
- test/fixtures/serialize_field.yml
|
571
|
+
- test/fixtures/has_one_field.yml
|
572
|
+
- test/fixtures/reference.yml
|
573
|
+
- test/fixtures/belongs_to_field.yml
|
574
|
+
- test/services/forest_liana/value_stat_getter_test.rb
|
575
|
+
- test/services/forest_liana/resources_getter_test.rb
|
576
|
+
- test/services/forest_liana/has_many_getter_test.rb
|
577
|
+
- test/services/forest_liana/resource_updater_test.rb
|
578
|
+
- test/services/forest_liana/pie_stat_getter_test.rb
|
579
|
+
- test/services/forest_liana/schema_adapter_test.rb
|
580
|
+
- test/services/forest_liana/scope_validator_test.rb
|
617
581
|
- test/routing/route_test.rb
|
618
|
-
-
|
619
|
-
-
|
620
|
-
- spec/
|
621
|
-
- spec/
|
622
|
-
- spec/
|
623
|
-
- spec/
|
624
|
-
- spec/
|
625
|
-
- spec/
|
626
|
-
- spec/
|
627
|
-
- spec/
|
628
|
-
- spec/
|
629
|
-
- spec/
|
630
|
-
- spec/
|
631
|
-
- spec/dummy/
|
582
|
+
- test/forest_liana_test.rb
|
583
|
+
- test/test_helper.rb
|
584
|
+
- spec/dummy/config/application.rb
|
585
|
+
- spec/dummy/config/database.yml
|
586
|
+
- spec/dummy/config/environment.rb
|
587
|
+
- spec/dummy/config/secrets.yml
|
588
|
+
- spec/dummy/config/environments/development.rb
|
589
|
+
- spec/dummy/config/environments/test.rb
|
590
|
+
- spec/dummy/config/environments/production.rb
|
591
|
+
- spec/dummy/config/boot.rb
|
592
|
+
- spec/dummy/config/initializers/session_store.rb
|
593
|
+
- spec/dummy/config/initializers/mime_types.rb
|
594
|
+
- spec/dummy/config/initializers/cookies_serializer.rb
|
595
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
596
|
+
- spec/dummy/config/initializers/inflections.rb
|
597
|
+
- spec/dummy/config/initializers/forest_liana.rb
|
598
|
+
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
599
|
+
- spec/dummy/config/initializers/assets.rb
|
600
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
601
|
+
- spec/dummy/config/routes.rb
|
602
|
+
- spec/dummy/app/config/routes.rb
|
603
|
+
- spec/dummy/app/assets/config/manifest.js
|
604
|
+
- spec/dummy/app/assets/stylesheets/application.css
|
605
|
+
- spec/dummy/app/assets/javascripts/application.js
|
632
606
|
- spec/dummy/app/views/layouts/application.html.erb
|
633
|
-
- spec/dummy/app/
|
634
|
-
- spec/dummy/app/models/user.rb
|
607
|
+
- spec/dummy/app/controllers/application_controller.rb
|
635
608
|
- spec/dummy/app/models/tree.rb
|
609
|
+
- spec/dummy/app/models/user.rb
|
610
|
+
- spec/dummy/app/models/island.rb
|
636
611
|
- spec/dummy/app/helpers/application_helper.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/config/routes.rb
|
641
|
-
- spec/dummy/app/controllers/application_controller.rb
|
642
612
|
- spec/dummy/Rakefile
|
613
|
+
- spec/dummy/config.ru
|
614
|
+
- spec/dummy/README.rdoc
|
615
|
+
- spec/dummy/bin/rails
|
643
616
|
- spec/dummy/bin/rake
|
644
617
|
- spec/dummy/bin/bundle
|
645
|
-
- spec/dummy/bin/rails
|
646
618
|
- spec/dummy/bin/setup
|
647
|
-
- spec/dummy/
|
619
|
+
- spec/dummy/db/schema.rb
|
620
|
+
- spec/dummy/db/migrate/20190226173051_create_isle.rb
|
648
621
|
- spec/dummy/db/migrate/20190226174951_create_tree.rb
|
622
|
+
- spec/dummy/db/migrate/20190226172951_create_user.rb
|
649
623
|
- spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
|
650
|
-
- spec/dummy/db/migrate/20190226173051_create_isle.rb
|
651
624
|
- spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
|
652
|
-
- spec/
|
653
|
-
- spec/
|
654
|
-
- spec/
|
655
|
-
- spec/
|
656
|
-
- spec/
|
657
|
-
- spec/
|
658
|
-
- spec/
|
659
|
-
- spec/
|
660
|
-
- spec/
|
661
|
-
- spec/
|
662
|
-
- spec/
|
663
|
-
- spec/
|
664
|
-
- spec/
|
665
|
-
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
666
|
-
- spec/dummy/config/initializers/assets.rb
|
667
|
-
- spec/dummy/config/initializers/session_store.rb
|
668
|
-
- spec/dummy/config/initializers/inflections.rb
|
669
|
-
- spec/dummy/config/initializers/cookies_serializer.rb
|
670
|
-
- spec/dummy/config/initializers/backtrace_silencers.rb
|
671
|
-
- spec/dummy/config/database.yml
|
625
|
+
- spec/requests/resources_spec.rb
|
626
|
+
- spec/requests/authentications_spec.rb
|
627
|
+
- spec/requests/actions_controller_spec.rb
|
628
|
+
- spec/spec_helper.rb
|
629
|
+
- spec/services/forest_liana/filters_parser_spec.rb
|
630
|
+
- spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
|
631
|
+
- spec/services/forest_liana/schema_adapter_spec.rb
|
632
|
+
- spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
|
633
|
+
- spec/services/forest_liana/apimap_sorter_spec.rb
|
634
|
+
- spec/services/forest_liana/permissions_getter_spec.rb
|
635
|
+
- spec/services/forest_liana/ip_whitelist_checker_spec.rb
|
636
|
+
- spec/services/forest_liana/permissions_formatter_spec.rb
|
637
|
+
- spec/rails_helper.rb
|
672
638
|
- spec/helpers/forest_liana/schema_helper_spec.rb
|
673
639
|
- spec/helpers/forest_liana/is_same_data_structure_helper_spec.rb
|
674
640
|
- spec/helpers/forest_liana/query_helper_spec.rb
|
675
|
-
- spec/rails_helper.rb
|