coalescing_panda 5.0.1 → 5.0.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 +5 -5
- data/app/assets/config/coalescing_panda/manifest.js +3 -0
- data/app/controllers/coalescing_panda/canvas_batches_controller.rb +2 -2
- data/app/controllers/coalescing_panda/lti_controller.rb +1 -1
- data/app/helpers/coalescing_panda/canvas_batches_helper.rb +1 -1
- data/app/models/coalescing_panda/json_with_indifferent_access.rb +13 -0
- data/app/models/coalescing_panda/persistent_session.rb +2 -1
- data/db/migrate/20131114150001_create_coalescing_panda_canvas_api_auths.rb +1 -1
- data/db/migrate/20131118211442_create_coalescing_panda_lti_accounts.rb +1 -1
- data/db/migrate/20131119165343_create_coalescing_panda_lti_nonces.rb +1 -1
- data/db/migrate/20140904223159_create_coalescing_panda_sessions.rb +1 -1
- data/db/migrate/20141119225319_create_coalescing_panda_terms.rb +1 -1
- data/db/migrate/20141119225721_create_coalescing_panda_courses.rb +1 -1
- data/db/migrate/20141120151432_create_coalescing_panda_sections.rb +1 -1
- data/db/migrate/20141120151940_create_coalescing_panda_assignments.rb +1 -1
- data/db/migrate/20141120152458_create_coalescing_panda_users.rb +1 -1
- data/db/migrate/20141120152546_create_coalescing_panda_submissions.rb +1 -1
- data/db/migrate/20141120153135_create_coalescing_panda_enrollments.rb +1 -1
- data/db/migrate/20141121174846_create_coalescing_panda_canvas_batches.rb +1 -1
- data/db/migrate/20141124160857_create_delayed_jobs.rb +1 -1
- data/db/migrate/20141208221740_add_submission_types_to_assignments.rb +1 -1
- data/db/migrate/20150106175418_add_group_category_id_to_assignment.rb +1 -1
- data/db/migrate/20150106180131_add_published_to_assignments.rb +1 -1
- data/db/migrate/20150107205405_create_coalescing_panda_groups.rb +1 -1
- data/db/migrate/20150107205413_create_coalescing_panda_group_memberships.rb +1 -1
- data/db/migrate/20150210180516_add_context_to_canvas_batch.rb +1 -1
- data/db/migrate/20150506183335_create_coalescing_panda_assignment_groups.rb +1 -1
- data/db/migrate/20150506192717_add_assignment_group_id_to_assignments.rb +1 -1
- data/db/migrate/20150526144713_add_account_to_canvas_batches.rb +1 -1
- data/db/migrate/20150602205257_add_option_to_canvas_batches.rb +1 -1
- data/db/migrate/20150708192717_add_group_moderator_to_group_memberships.rb +1 -1
- data/db/migrate/20150709192717_add_leader_id_to_groups.rb +1 -1
- data/db/migrate/20150714205405_create_coalescing_panda_group_categories.rb +1 -1
- data/db/migrate/20150811140030_add_fields_to_users.rb +1 -1
- data/db/migrate/20151209155923_add_refresh_settings_to_canvas_api_auth.rb +1 -1
- data/db/migrate/20160830183155_create_coalescing_panda_oauth_states.rb +1 -1
- data/db/migrate/20200528224505_create_coalescing_panda_persistent_session.rb +1 -1
- data/lib/coalescing_panda/controller_helpers.rb +40 -23
- data/lib/coalescing_panda/engine.rb +12 -42
- data/lib/coalescing_panda/misc_helper.rb +13 -0
- data/lib/coalescing_panda/secure_headers.rb +84 -0
- data/lib/coalescing_panda/version.rb +1 -1
- metadata +172 -163
@@ -0,0 +1,13 @@
|
|
1
|
+
module CoalescingPanda
|
2
|
+
module MiscHelper
|
3
|
+
MigrationClass = Rails.version < '5.0' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
|
4
|
+
|
5
|
+
def self.to_boolean(v)
|
6
|
+
if Rails.version < '5.0'
|
7
|
+
ActiveRecord::Type::Boolean.new.type_cast_from_user("0")
|
8
|
+
else
|
9
|
+
ActiveRecord::Type::Boolean.new.deserialize('0')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module CoalescingPanda
|
2
|
+
module SecureHeaders
|
3
|
+
def self.apply_defaults(config)
|
4
|
+
@config = config
|
5
|
+
# The default cookie headers aren't compatable with CoalescingPanda cookies currenntly
|
6
|
+
config.cookies = { samesite: { none: true } }
|
7
|
+
|
8
|
+
if Rails.env.production?
|
9
|
+
config.cookies[:secure] = true
|
10
|
+
end
|
11
|
+
|
12
|
+
# Need to allow LTI iframes
|
13
|
+
config.x_frame_options = "ALLOWALL"
|
14
|
+
|
15
|
+
config.x_content_type_options = "nosniff"
|
16
|
+
config.x_xss_protection = "1; mode=block"
|
17
|
+
config.referrer_policy = %w(origin-when-cross-origin strict-origin-when-cross-origin)
|
18
|
+
|
19
|
+
config.csp ||= {}
|
20
|
+
|
21
|
+
csp_entry(:default_src, %w['self'])
|
22
|
+
csp_entry(:connect_src, %w['self'])
|
23
|
+
csp_entry(:script_src, %w['self'])
|
24
|
+
|
25
|
+
if Rails.env.development?
|
26
|
+
# Allow webpack-dev-server to work
|
27
|
+
csp_entry(:connect_src, "http://localhost:3035")
|
28
|
+
csp_entry(:connect_src, "ws://localhost:3035")
|
29
|
+
|
30
|
+
# Allow stuff like rack-mini-profiler to work in development:
|
31
|
+
# https://github.com/MiniProfiler/rack-mini-profiler/issues/327
|
32
|
+
# DON'T ENABLE THIS FOR PRODUCTION!
|
33
|
+
csp_entry(:script_src, "'unsafe-eval'")
|
34
|
+
|
35
|
+
# Detect and permit Scout APM in Dev
|
36
|
+
if MiscHelper.to_boolean(ENV['SCOUT_DEV_TRACE'])
|
37
|
+
csp_entry(:default_src, 'https://scoutapm.com')
|
38
|
+
csp_entry(:default_src, 'https://apm.scoutapp.com')
|
39
|
+
|
40
|
+
csp_entry(:script_src, "'unsafe-inline'")
|
41
|
+
csp_entry(:script_src, 'https://scoutapm.com')
|
42
|
+
csp_entry(:script_src, 'https://apm.scoutapp.com')
|
43
|
+
|
44
|
+
csp_entry(:connect_src, 'https://apm.scoutapp.com')
|
45
|
+
|
46
|
+
csp_entry(:style_src, 'https://scoutapm.com')
|
47
|
+
csp_entry(:style_src, 'https://apm.scoutapp.com')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
if CoalescingPanda.lti_options.has_key?(:allow_unsafe_eval) && CoalescingPanda.lti_options[:allow_unsafe_eval] == true
|
52
|
+
# For when code is returned from server and injected into dom. Need to have unsafe-eval or it won't work.
|
53
|
+
csp_entry(:script_src, "'unsafe-eval'")
|
54
|
+
end
|
55
|
+
|
56
|
+
# Detect and permit Sentry
|
57
|
+
if defined?(Raven) && Raven.configuration.server.present?
|
58
|
+
csp_entry(:connect_src, Raven.configuration.server)
|
59
|
+
|
60
|
+
# Report CSP Violations to Sentry
|
61
|
+
unless config.csp[:report_uri].present?
|
62
|
+
cfg = Raven.configuration
|
63
|
+
config.csp[:report_uri] = ["#{cfg.scheme}://#{cfg.host}/api/#{cfg.project_id}/security/?sentry_key=#{cfg.public_key}"] unless config.csp[:report_uri].present?
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# Certain CSS-in-JS libraries inline the CSS, so we need to use unsafe-inline for them
|
68
|
+
csp_entry(:style_src, %w('self' 'unsafe-inline' blob: https://fonts.googleapis.com))
|
69
|
+
csp_entry(:font_src, %w('self' data: https://fonts.gstatic.com))
|
70
|
+
|
71
|
+
@config = nil
|
72
|
+
|
73
|
+
config
|
74
|
+
end
|
75
|
+
|
76
|
+
private
|
77
|
+
|
78
|
+
def self.csp_entry(key, *values)
|
79
|
+
values = values.flatten
|
80
|
+
@config.csp[key] ||= []
|
81
|
+
@config.csp[key] |= values
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coalescing_panda
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Mills
|
@@ -10,48 +10,48 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-
|
13
|
+
date: 2020-08-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 4.2.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: 4.2.1
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: bearcat
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - ~>
|
33
|
+
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 1.3.0
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- - ~>
|
40
|
+
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 1.3.0
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: browser
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '0'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '0'
|
57
57
|
- !ruby/object:Gem::Dependency
|
@@ -72,322 +72,328 @@ dependencies:
|
|
72
72
|
name: ims-lti
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 2.
|
77
|
+
version: 1.2.0
|
78
|
+
- - "<"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '2.0'
|
78
81
|
type: :runtime
|
79
82
|
prerelease: false
|
80
83
|
version_requirements: !ruby/object:Gem::Requirement
|
81
84
|
requirements:
|
82
|
-
- -
|
85
|
+
- - "~>"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 1.2.0
|
88
|
+
- - "<"
|
83
89
|
- !ruby/object:Gem::Version
|
84
|
-
version: 2.
|
90
|
+
version: '2.0'
|
85
91
|
- !ruby/object:Gem::Dependency
|
86
92
|
name: haml-rails
|
87
93
|
requirement: !ruby/object:Gem::Requirement
|
88
94
|
requirements:
|
89
|
-
- -
|
95
|
+
- - ">="
|
90
96
|
- !ruby/object:Gem::Version
|
91
97
|
version: '0'
|
92
98
|
type: :runtime
|
93
99
|
prerelease: false
|
94
100
|
version_requirements: !ruby/object:Gem::Requirement
|
95
101
|
requirements:
|
96
|
-
- -
|
102
|
+
- - ">="
|
97
103
|
- !ruby/object:Gem::Version
|
98
104
|
version: '0'
|
99
105
|
- !ruby/object:Gem::Dependency
|
100
106
|
name: sass-rails
|
101
107
|
requirement: !ruby/object:Gem::Requirement
|
102
108
|
requirements:
|
103
|
-
- -
|
109
|
+
- - ">="
|
104
110
|
- !ruby/object:Gem::Version
|
105
111
|
version: '3.2'
|
106
112
|
type: :runtime
|
107
113
|
prerelease: false
|
108
114
|
version_requirements: !ruby/object:Gem::Requirement
|
109
115
|
requirements:
|
110
|
-
- -
|
116
|
+
- - ">="
|
111
117
|
- !ruby/object:Gem::Version
|
112
118
|
version: '3.2'
|
113
119
|
- !ruby/object:Gem::Dependency
|
114
120
|
name: jquery-rails
|
115
121
|
requirement: !ruby/object:Gem::Requirement
|
116
122
|
requirements:
|
117
|
-
- -
|
123
|
+
- - ">="
|
118
124
|
- !ruby/object:Gem::Version
|
119
125
|
version: '0'
|
120
126
|
type: :runtime
|
121
127
|
prerelease: false
|
122
128
|
version_requirements: !ruby/object:Gem::Requirement
|
123
129
|
requirements:
|
124
|
-
- -
|
130
|
+
- - ">="
|
125
131
|
- !ruby/object:Gem::Version
|
126
132
|
version: '0'
|
127
133
|
- !ruby/object:Gem::Dependency
|
128
134
|
name: coffee-rails
|
129
135
|
requirement: !ruby/object:Gem::Requirement
|
130
136
|
requirements:
|
131
|
-
- -
|
137
|
+
- - ">="
|
132
138
|
- !ruby/object:Gem::Version
|
133
139
|
version: '0'
|
134
140
|
type: :runtime
|
135
141
|
prerelease: false
|
136
142
|
version_requirements: !ruby/object:Gem::Requirement
|
137
143
|
requirements:
|
138
|
-
- -
|
144
|
+
- - ">="
|
139
145
|
- !ruby/object:Gem::Version
|
140
146
|
version: '0'
|
141
147
|
- !ruby/object:Gem::Dependency
|
142
148
|
name: p3p
|
143
149
|
requirement: !ruby/object:Gem::Requirement
|
144
150
|
requirements:
|
145
|
-
- -
|
151
|
+
- - ">="
|
146
152
|
- !ruby/object:Gem::Version
|
147
153
|
version: '0'
|
148
154
|
type: :runtime
|
149
155
|
prerelease: false
|
150
156
|
version_requirements: !ruby/object:Gem::Requirement
|
151
157
|
requirements:
|
152
|
-
- -
|
158
|
+
- - ">="
|
153
159
|
- !ruby/object:Gem::Version
|
154
160
|
version: '0'
|
155
161
|
- !ruby/object:Gem::Dependency
|
156
162
|
name: delayed_job_active_record
|
157
163
|
requirement: !ruby/object:Gem::Requirement
|
158
164
|
requirements:
|
159
|
-
- -
|
165
|
+
- - ">="
|
160
166
|
- !ruby/object:Gem::Version
|
161
167
|
version: '0'
|
162
168
|
type: :runtime
|
163
169
|
prerelease: false
|
164
170
|
version_requirements: !ruby/object:Gem::Requirement
|
165
171
|
requirements:
|
166
|
-
- -
|
172
|
+
- - ">="
|
167
173
|
- !ruby/object:Gem::Version
|
168
174
|
version: '0'
|
169
175
|
- !ruby/object:Gem::Dependency
|
170
176
|
name: open_uri_redirections
|
171
177
|
requirement: !ruby/object:Gem::Requirement
|
172
178
|
requirements:
|
173
|
-
- -
|
179
|
+
- - ">="
|
174
180
|
- !ruby/object:Gem::Version
|
175
181
|
version: '0'
|
176
182
|
type: :runtime
|
177
183
|
prerelease: false
|
178
184
|
version_requirements: !ruby/object:Gem::Requirement
|
179
185
|
requirements:
|
180
|
-
- -
|
186
|
+
- - ">="
|
181
187
|
- !ruby/object:Gem::Version
|
182
188
|
version: '0'
|
183
189
|
- !ruby/object:Gem::Dependency
|
184
190
|
name: oauth
|
185
191
|
requirement: !ruby/object:Gem::Requirement
|
186
192
|
requirements:
|
187
|
-
- - ~>
|
193
|
+
- - "~>"
|
188
194
|
- !ruby/object:Gem::Version
|
189
195
|
version: 0.5.4
|
190
196
|
type: :runtime
|
191
197
|
prerelease: false
|
192
198
|
version_requirements: !ruby/object:Gem::Requirement
|
193
199
|
requirements:
|
194
|
-
- - ~>
|
200
|
+
- - "~>"
|
195
201
|
- !ruby/object:Gem::Version
|
196
202
|
version: 0.5.4
|
197
203
|
- !ruby/object:Gem::Dependency
|
198
204
|
name: rubyzip
|
199
205
|
requirement: !ruby/object:Gem::Requirement
|
200
206
|
requirements:
|
201
|
-
- -
|
207
|
+
- - ">="
|
202
208
|
- !ruby/object:Gem::Version
|
203
209
|
version: 1.0.0
|
204
210
|
type: :runtime
|
205
211
|
prerelease: false
|
206
212
|
version_requirements: !ruby/object:Gem::Requirement
|
207
213
|
requirements:
|
208
|
-
- -
|
214
|
+
- - ">="
|
209
215
|
- !ruby/object:Gem::Version
|
210
216
|
version: 1.0.0
|
211
217
|
- !ruby/object:Gem::Dependency
|
212
218
|
name: secure_headers
|
213
219
|
requirement: !ruby/object:Gem::Requirement
|
214
220
|
requirements:
|
215
|
-
- - ~>
|
221
|
+
- - "~>"
|
216
222
|
- !ruby/object:Gem::Version
|
217
223
|
version: '6.3'
|
218
224
|
type: :runtime
|
219
225
|
prerelease: false
|
220
226
|
version_requirements: !ruby/object:Gem::Requirement
|
221
227
|
requirements:
|
222
|
-
- - ~>
|
228
|
+
- - "~>"
|
223
229
|
- !ruby/object:Gem::Version
|
224
230
|
version: '6.3'
|
225
231
|
- !ruby/object:Gem::Dependency
|
226
232
|
name: zip-zip
|
227
233
|
requirement: !ruby/object:Gem::Requirement
|
228
234
|
requirements:
|
229
|
-
- -
|
235
|
+
- - ">="
|
230
236
|
- !ruby/object:Gem::Version
|
231
237
|
version: '0'
|
232
238
|
type: :runtime
|
233
239
|
prerelease: false
|
234
240
|
version_requirements: !ruby/object:Gem::Requirement
|
235
241
|
requirements:
|
236
|
-
- -
|
242
|
+
- - ">="
|
237
243
|
- !ruby/object:Gem::Version
|
238
244
|
version: '0'
|
239
245
|
- !ruby/object:Gem::Dependency
|
240
246
|
name: sqlite3
|
241
247
|
requirement: !ruby/object:Gem::Requirement
|
242
248
|
requirements:
|
243
|
-
- -
|
249
|
+
- - ">="
|
244
250
|
- !ruby/object:Gem::Version
|
245
251
|
version: '0'
|
246
252
|
type: :development
|
247
253
|
prerelease: false
|
248
254
|
version_requirements: !ruby/object:Gem::Requirement
|
249
255
|
requirements:
|
250
|
-
- -
|
256
|
+
- - ">="
|
251
257
|
- !ruby/object:Gem::Version
|
252
258
|
version: '0'
|
253
259
|
- !ruby/object:Gem::Dependency
|
254
260
|
name: rspec-rails
|
255
261
|
requirement: !ruby/object:Gem::Requirement
|
256
262
|
requirements:
|
257
|
-
- -
|
263
|
+
- - ">="
|
258
264
|
- !ruby/object:Gem::Version
|
259
265
|
version: '0'
|
260
266
|
type: :development
|
261
267
|
prerelease: false
|
262
268
|
version_requirements: !ruby/object:Gem::Requirement
|
263
269
|
requirements:
|
264
|
-
- -
|
270
|
+
- - ">="
|
265
271
|
- !ruby/object:Gem::Version
|
266
272
|
version: '0'
|
267
273
|
- !ruby/object:Gem::Dependency
|
268
274
|
name: factory_girl_rails
|
269
275
|
requirement: !ruby/object:Gem::Requirement
|
270
276
|
requirements:
|
271
|
-
- -
|
277
|
+
- - ">="
|
272
278
|
- !ruby/object:Gem::Version
|
273
279
|
version: '0'
|
274
280
|
type: :development
|
275
281
|
prerelease: false
|
276
282
|
version_requirements: !ruby/object:Gem::Requirement
|
277
283
|
requirements:
|
278
|
-
- -
|
284
|
+
- - ">="
|
279
285
|
- !ruby/object:Gem::Version
|
280
286
|
version: '0'
|
281
287
|
- !ruby/object:Gem::Dependency
|
282
288
|
name: shoulda-matchers
|
283
289
|
requirement: !ruby/object:Gem::Requirement
|
284
290
|
requirements:
|
285
|
-
- -
|
291
|
+
- - ">="
|
286
292
|
- !ruby/object:Gem::Version
|
287
293
|
version: '0'
|
288
294
|
type: :development
|
289
295
|
prerelease: false
|
290
296
|
version_requirements: !ruby/object:Gem::Requirement
|
291
297
|
requirements:
|
292
|
-
- -
|
298
|
+
- - ">="
|
293
299
|
- !ruby/object:Gem::Version
|
294
300
|
version: '0'
|
295
301
|
- !ruby/object:Gem::Dependency
|
296
302
|
name: nokogiri
|
297
303
|
requirement: !ruby/object:Gem::Requirement
|
298
304
|
requirements:
|
299
|
-
- -
|
305
|
+
- - ">="
|
300
306
|
- !ruby/object:Gem::Version
|
301
307
|
version: '0'
|
302
308
|
type: :development
|
303
309
|
prerelease: false
|
304
310
|
version_requirements: !ruby/object:Gem::Requirement
|
305
311
|
requirements:
|
306
|
-
- -
|
312
|
+
- - ">="
|
307
313
|
- !ruby/object:Gem::Version
|
308
314
|
version: '0'
|
309
315
|
- !ruby/object:Gem::Dependency
|
310
316
|
name: simplecov
|
311
317
|
requirement: !ruby/object:Gem::Requirement
|
312
318
|
requirements:
|
313
|
-
- -
|
319
|
+
- - ">="
|
314
320
|
- !ruby/object:Gem::Version
|
315
321
|
version: '0'
|
316
322
|
type: :development
|
317
323
|
prerelease: false
|
318
324
|
version_requirements: !ruby/object:Gem::Requirement
|
319
325
|
requirements:
|
320
|
-
- -
|
326
|
+
- - ">="
|
321
327
|
- !ruby/object:Gem::Version
|
322
328
|
version: '0'
|
323
329
|
- !ruby/object:Gem::Dependency
|
324
330
|
name: byebug
|
325
331
|
requirement: !ruby/object:Gem::Requirement
|
326
332
|
requirements:
|
327
|
-
- -
|
333
|
+
- - ">="
|
328
334
|
- !ruby/object:Gem::Version
|
329
335
|
version: '0'
|
330
336
|
type: :development
|
331
337
|
prerelease: false
|
332
338
|
version_requirements: !ruby/object:Gem::Requirement
|
333
339
|
requirements:
|
334
|
-
- -
|
340
|
+
- - ">="
|
335
341
|
- !ruby/object:Gem::Version
|
336
342
|
version: '0'
|
337
343
|
- !ruby/object:Gem::Dependency
|
338
344
|
name: pry
|
339
345
|
requirement: !ruby/object:Gem::Requirement
|
340
346
|
requirements:
|
341
|
-
- -
|
347
|
+
- - ">="
|
342
348
|
- !ruby/object:Gem::Version
|
343
349
|
version: '0'
|
344
350
|
type: :development
|
345
351
|
prerelease: false
|
346
352
|
version_requirements: !ruby/object:Gem::Requirement
|
347
353
|
requirements:
|
348
|
-
- -
|
354
|
+
- - ">="
|
349
355
|
- !ruby/object:Gem::Version
|
350
356
|
version: '0'
|
351
357
|
- !ruby/object:Gem::Dependency
|
352
358
|
name: webmock
|
353
359
|
requirement: !ruby/object:Gem::Requirement
|
354
360
|
requirements:
|
355
|
-
- -
|
361
|
+
- - ">="
|
356
362
|
- !ruby/object:Gem::Version
|
357
363
|
version: '0'
|
358
364
|
type: :development
|
359
365
|
prerelease: false
|
360
366
|
version_requirements: !ruby/object:Gem::Requirement
|
361
367
|
requirements:
|
362
|
-
- -
|
368
|
+
- - ">="
|
363
369
|
- !ruby/object:Gem::Version
|
364
370
|
version: '0'
|
365
371
|
- !ruby/object:Gem::Dependency
|
366
372
|
name: lol_dba
|
367
373
|
requirement: !ruby/object:Gem::Requirement
|
368
374
|
requirements:
|
369
|
-
- -
|
375
|
+
- - ">="
|
370
376
|
- !ruby/object:Gem::Version
|
371
377
|
version: '0'
|
372
378
|
type: :development
|
373
379
|
prerelease: false
|
374
380
|
version_requirements: !ruby/object:Gem::Requirement
|
375
381
|
requirements:
|
376
|
-
- -
|
382
|
+
- - ">="
|
377
383
|
- !ruby/object:Gem::Version
|
378
384
|
version: '0'
|
379
385
|
- !ruby/object:Gem::Dependency
|
380
386
|
name: database_cleaner
|
381
387
|
requirement: !ruby/object:Gem::Requirement
|
382
388
|
requirements:
|
383
|
-
- -
|
389
|
+
- - ">="
|
384
390
|
- !ruby/object:Gem::Version
|
385
391
|
version: '0'
|
386
392
|
type: :development
|
387
393
|
prerelease: false
|
388
394
|
version_requirements: !ruby/object:Gem::Requirement
|
389
395
|
requirements:
|
390
|
-
- -
|
396
|
+
- - ">="
|
391
397
|
- !ruby/object:Gem::Version
|
392
398
|
version: '0'
|
393
399
|
description:
|
@@ -399,156 +405,160 @@ executables: []
|
|
399
405
|
extensions: []
|
400
406
|
extra_rdoc_files: []
|
401
407
|
files:
|
408
|
+
- Rakefile
|
409
|
+
- app/assets/config/coalescing_panda/manifest.js
|
410
|
+
- app/assets/images/bootstrap/glyphicons-halflings-white.png
|
411
|
+
- app/assets/images/bootstrap/glyphicons-halflings.png
|
412
|
+
- app/assets/javascripts/coalescing_panda/application.js
|
413
|
+
- app/assets/javascripts/coalescing_panda/canvas_batch.js.coffee
|
414
|
+
- app/assets/javascripts/coalescing_panda/oauth2.js.coffee
|
415
|
+
- app/assets/stylesheets/coalescing_panda/application.css.scss
|
416
|
+
- app/assets/stylesheets/coalescing_panda/launch.css.scss
|
417
|
+
- app/assets/stylesheets/coalescing_panda/progress.css.scss
|
418
|
+
- app/controllers/coalescing_panda/application_controller.rb
|
419
|
+
- app/controllers/coalescing_panda/canvas_batches_controller.rb
|
420
|
+
- app/controllers/coalescing_panda/lti_controller.rb
|
421
|
+
- app/controllers/coalescing_panda/oauth2_controller.rb
|
422
|
+
- app/helpers/coalescing_panda/canvas_batches_helper.rb
|
423
|
+
- app/models/coalescing_panda/assignment.rb
|
402
424
|
- app/models/coalescing_panda/assignment_group.rb
|
403
|
-
- app/models/coalescing_panda/
|
404
|
-
- app/models/coalescing_panda/enrollment.rb
|
425
|
+
- app/models/coalescing_panda/canvas_api_auth.rb
|
405
426
|
- app/models/coalescing_panda/canvas_batch.rb
|
406
|
-
- app/models/coalescing_panda/
|
427
|
+
- app/models/coalescing_panda/course.rb
|
428
|
+
- app/models/coalescing_panda/enrollment.rb
|
407
429
|
- app/models/coalescing_panda/group.rb
|
408
|
-
- app/models/coalescing_panda/
|
409
|
-
- app/models/coalescing_panda/
|
410
|
-
- app/models/coalescing_panda/
|
430
|
+
- app/models/coalescing_panda/group_category.rb
|
431
|
+
- app/models/coalescing_panda/group_membership.rb
|
432
|
+
- app/models/coalescing_panda/json_with_indifferent_access.rb
|
433
|
+
- app/models/coalescing_panda/lti_account.rb
|
434
|
+
- app/models/coalescing_panda/lti_nonce.rb
|
411
435
|
- app/models/coalescing_panda/oauth_state.rb
|
436
|
+
- app/models/coalescing_panda/persistent_session.rb
|
437
|
+
- app/models/coalescing_panda/section.rb
|
438
|
+
- app/models/coalescing_panda/session.rb
|
412
439
|
- app/models/coalescing_panda/submission.rb
|
413
|
-
- app/models/coalescing_panda/
|
440
|
+
- app/models/coalescing_panda/term.rb
|
441
|
+
- app/models/coalescing_panda/user.rb
|
414
442
|
- app/models/coalescing_panda/workers/account_miner.rb
|
415
|
-
- app/models/coalescing_panda/workers/provisioning_miner.rb
|
416
443
|
- app/models/coalescing_panda/workers/course_miner.rb
|
417
|
-
- app/models/coalescing_panda/
|
418
|
-
- app/models/coalescing_panda/course.rb
|
419
|
-
- app/models/coalescing_panda/persistent_session.rb
|
420
|
-
- app/models/coalescing_panda/lti_account.rb
|
421
|
-
- app/models/coalescing_panda/user.rb
|
422
|
-
- app/models/coalescing_panda/group_category.rb
|
444
|
+
- app/models/coalescing_panda/workers/provisioning_miner.rb
|
423
445
|
- app/models/concerns/single_table_polymorphic.rb
|
424
|
-
- app/
|
425
|
-
- app/
|
426
|
-
- app/
|
427
|
-
- app/
|
446
|
+
- app/views/coalescing_panda/canvas_batches/_canvas_batch.html.haml
|
447
|
+
- app/views/coalescing_panda/canvas_batches/_canvas_batch_flash.html.haml
|
448
|
+
- app/views/coalescing_panda/launch.html.haml
|
449
|
+
- app/views/coalescing_panda/lti/iframe_cookie_fix.html.erb
|
428
450
|
- app/views/coalescing_panda/oauth2/oauth2.html.haml
|
429
451
|
- app/views/coalescing_panda/oauth2/redirect.html.haml
|
430
|
-
- app/views/coalescing_panda/launch.html.haml
|
431
452
|
- app/views/coalescing_panda/styleguide/styleguide.html
|
432
|
-
- app/views/coalescing_panda/lti/iframe_cookie_fix.html.erb
|
433
|
-
- app/views/coalescing_panda/canvas_batches/_canvas_batch.html.haml
|
434
|
-
- app/views/coalescing_panda/canvas_batches/_canvas_batch_flash.html.haml
|
435
453
|
- app/views/layouts/coalescing_panda/application.html.erb
|
436
|
-
- app/assets/images/bootstrap/glyphicons-halflings.png
|
437
|
-
- app/assets/images/bootstrap/glyphicons-halflings-white.png
|
438
|
-
- app/assets/javascripts/coalescing_panda/oauth2.js.coffee
|
439
|
-
- app/assets/javascripts/coalescing_panda/application.js
|
440
|
-
- app/assets/javascripts/coalescing_panda/canvas_batch.js.coffee
|
441
|
-
- app/assets/stylesheets/coalescing_panda/progress.css.scss
|
442
|
-
- app/assets/stylesheets/coalescing_panda/application.css.scss
|
443
|
-
- app/assets/stylesheets/coalescing_panda/launch.css.scss
|
444
|
-
- app/helpers/coalescing_panda/canvas_batches_helper.rb
|
445
454
|
- config/routes.rb
|
446
455
|
- config/styleguide.yml
|
447
|
-
- db/migrate/
|
448
|
-
- db/migrate/20150602205257_add_option_to_canvas_batches.rb
|
449
|
-
- db/migrate/20150811140030_add_fields_to_users.rb
|
456
|
+
- db/migrate/20131114150001_create_coalescing_panda_canvas_api_auths.rb
|
450
457
|
- db/migrate/20131118211442_create_coalescing_panda_lti_accounts.rb
|
451
|
-
- db/migrate/
|
452
|
-
- db/migrate/
|
458
|
+
- db/migrate/20131119165343_create_coalescing_panda_lti_nonces.rb
|
459
|
+
- db/migrate/20140904223159_create_coalescing_panda_sessions.rb
|
460
|
+
- db/migrate/20141119225319_create_coalescing_panda_terms.rb
|
461
|
+
- db/migrate/20141119225721_create_coalescing_panda_courses.rb
|
462
|
+
- db/migrate/20141120151432_create_coalescing_panda_sections.rb
|
463
|
+
- db/migrate/20141120151940_create_coalescing_panda_assignments.rb
|
464
|
+
- db/migrate/20141120152458_create_coalescing_panda_users.rb
|
453
465
|
- db/migrate/20141120152546_create_coalescing_panda_submissions.rb
|
466
|
+
- db/migrate/20141120153135_create_coalescing_panda_enrollments.rb
|
467
|
+
- db/migrate/20141121174846_create_coalescing_panda_canvas_batches.rb
|
468
|
+
- db/migrate/20141124160857_create_delayed_jobs.rb
|
454
469
|
- db/migrate/20141208221740_add_submission_types_to_assignments.rb
|
455
|
-
- db/migrate/
|
470
|
+
- db/migrate/20150106175418_add_group_category_id_to_assignment.rb
|
471
|
+
- db/migrate/20150106180131_add_published_to_assignments.rb
|
472
|
+
- db/migrate/20150107205405_create_coalescing_panda_groups.rb
|
456
473
|
- db/migrate/20150107205413_create_coalescing_panda_group_memberships.rb
|
457
|
-
- db/migrate/20141120152458_create_coalescing_panda_users.rb
|
458
|
-
- db/migrate/20141121174846_create_coalescing_panda_canvas_batches.rb
|
459
|
-
- db/migrate/20150708192717_add_group_moderator_to_group_memberships.rb
|
460
474
|
- db/migrate/20150210180516_add_context_to_canvas_batch.rb
|
461
|
-
- db/migrate/20141120151940_create_coalescing_panda_assignments.rb
|
462
|
-
- db/migrate/20140904223159_create_coalescing_panda_sessions.rb
|
463
475
|
- db/migrate/20150506183335_create_coalescing_panda_assignment_groups.rb
|
464
|
-
- db/migrate/
|
465
|
-
- db/migrate/20150107205405_create_coalescing_panda_groups.rb
|
466
|
-
- db/migrate/20141119225721_create_coalescing_panda_courses.rb
|
467
|
-
- db/migrate/20200528224505_create_coalescing_panda_persistent_session.rb
|
468
|
-
- db/migrate/20141124160857_create_delayed_jobs.rb
|
469
|
-
- db/migrate/20131119165343_create_coalescing_panda_lti_nonces.rb
|
470
|
-
- db/migrate/20150106180131_add_published_to_assignments.rb
|
476
|
+
- db/migrate/20150506192717_add_assignment_group_id_to_assignments.rb
|
471
477
|
- db/migrate/20150526144713_add_account_to_canvas_batches.rb
|
472
|
-
- db/migrate/
|
478
|
+
- db/migrate/20150602205257_add_option_to_canvas_batches.rb
|
479
|
+
- db/migrate/20150708192717_add_group_moderator_to_group_memberships.rb
|
480
|
+
- db/migrate/20150709192717_add_leader_id_to_groups.rb
|
473
481
|
- db/migrate/20150714205405_create_coalescing_panda_group_categories.rb
|
482
|
+
- db/migrate/20150811140030_add_fields_to_users.rb
|
474
483
|
- db/migrate/20151209155923_add_refresh_settings_to_canvas_api_auth.rb
|
475
|
-
- db/migrate/
|
476
|
-
- db/migrate/
|
477
|
-
- lib/tasks/coalescing_panda_tasks.rake
|
484
|
+
- db/migrate/20160830183155_create_coalescing_panda_oauth_states.rb
|
485
|
+
- db/migrate/20200528224505_create_coalescing_panda_persistent_session.rb
|
478
486
|
- lib/coalescing_panda.rb
|
479
|
-
- lib/coalescing_panda/controller_helpers.rb
|
480
487
|
- lib/coalescing_panda/bearcat_uri.rb
|
488
|
+
- lib/coalescing_panda/controller_helpers.rb
|
481
489
|
- lib/coalescing_panda/engine.rb
|
482
|
-
- lib/coalescing_panda/
|
490
|
+
- lib/coalescing_panda/misc_helper.rb
|
483
491
|
- lib/coalescing_panda/route_helpers.rb
|
484
|
-
-
|
485
|
-
-
|
486
|
-
-
|
487
|
-
- spec/
|
488
|
-
- spec/
|
489
|
-
- spec/
|
492
|
+
- lib/coalescing_panda/secure_headers.rb
|
493
|
+
- lib/coalescing_panda/version.rb
|
494
|
+
- lib/tasks/coalescing_panda_tasks.rake
|
495
|
+
- spec/controllers/coalescing_panda/canvas_batches_controller_spec.rb
|
496
|
+
- spec/controllers/coalescing_panda/lti_controller_spec.rb
|
497
|
+
- spec/controllers/coalescing_panda/oauth2_controller_spec.rb
|
498
|
+
- spec/dummy/README.rdoc
|
499
|
+
- spec/dummy/Rakefile
|
490
500
|
- spec/dummy/app/assets/javascripts/application.js
|
491
501
|
- spec/dummy/app/assets/stylesheets/application.css
|
502
|
+
- spec/dummy/app/controllers/application_controller.rb
|
492
503
|
- spec/dummy/app/helpers/application_helper.rb
|
493
|
-
- spec/dummy/
|
504
|
+
- spec/dummy/app/models/account.rb
|
505
|
+
- spec/dummy/app/models/course.rb
|
506
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
494
507
|
- spec/dummy/bin/bundle
|
495
508
|
- spec/dummy/bin/rails
|
496
|
-
- spec/dummy/
|
497
|
-
- spec/dummy/config
|
498
|
-
- spec/dummy/config/environments/production.rb
|
499
|
-
- spec/dummy/config/environments/development.rb
|
500
|
-
- spec/dummy/config/environments/test.rb
|
501
|
-
- spec/dummy/config/environment.rb
|
509
|
+
- spec/dummy/bin/rake
|
510
|
+
- spec/dummy/config.ru
|
502
511
|
- spec/dummy/config/application.rb
|
503
|
-
- spec/dummy/config/database.yml
|
504
512
|
- spec/dummy/config/boot.rb
|
505
|
-
- spec/dummy/config/
|
513
|
+
- spec/dummy/config/database.yml
|
514
|
+
- spec/dummy/config/environment.rb
|
515
|
+
- spec/dummy/config/environments/development.rb
|
516
|
+
- spec/dummy/config/environments/production.rb
|
517
|
+
- spec/dummy/config/environments/test.rb
|
506
518
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
507
|
-
- spec/dummy/config/initializers/mime_types.rb
|
508
519
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
520
|
+
- spec/dummy/config/initializers/inflections.rb
|
521
|
+
- spec/dummy/config/initializers/lti_initializer.rb
|
522
|
+
- spec/dummy/config/initializers/mime_types.rb
|
523
|
+
- spec/dummy/config/initializers/secret_token.rb
|
509
524
|
- spec/dummy/config/initializers/session_store.rb
|
510
525
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
511
|
-
- spec/dummy/config/
|
512
|
-
- spec/dummy/config/
|
513
|
-
- spec/dummy/
|
514
|
-
- spec/dummy/
|
515
|
-
- spec/dummy/public/favicon.ico
|
526
|
+
- spec/dummy/config/locales/en.yml
|
527
|
+
- spec/dummy/config/routes.rb
|
528
|
+
- spec/dummy/db/schema.rb
|
529
|
+
- spec/dummy/public/404.html
|
516
530
|
- spec/dummy/public/422.html
|
517
531
|
- spec/dummy/public/500.html
|
518
|
-
- spec/dummy/public/
|
519
|
-
- spec/
|
520
|
-
- spec/dummy/README.rdoc
|
521
|
-
- spec/models/coalescing_panda/enrollment_spec.rb
|
522
|
-
- spec/models/coalescing_panda/section_spec.rb
|
523
|
-
- spec/models/coalescing_panda/lti_nonce_spec.rb
|
524
|
-
- spec/models/coalescing_panda/lti_account_spec.rb
|
525
|
-
- spec/models/coalescing_panda/canvas_batch_spec.rb
|
526
|
-
- spec/models/coalescing_panda/term_spec.rb
|
527
|
-
- spec/models/coalescing_panda/assignment_spec.rb
|
528
|
-
- spec/models/coalescing_panda/submission_spec.rb
|
529
|
-
- spec/models/coalescing_panda/assignment_group_spec.rb
|
530
|
-
- spec/models/coalescing_panda/group_spec.rb
|
531
|
-
- spec/models/coalescing_panda/workers/account_miner_spec.rb
|
532
|
-
- spec/models/coalescing_panda/workers/course_miner_spec.rb
|
533
|
-
- spec/models/coalescing_panda/canvas_api_auth_spec.rb
|
534
|
-
- spec/models/coalescing_panda/group_membership_spec.rb
|
535
|
-
- spec/models/coalescing_panda/user_spec.rb
|
536
|
-
- spec/models/coalescing_panda/course_spec.rb
|
537
|
-
- spec/factories/courses.rb
|
538
|
-
- spec/factories/submissions.rb
|
532
|
+
- spec/dummy/public/favicon.ico
|
533
|
+
- spec/factories/accounts.rb
|
539
534
|
- spec/factories/assignment_groups.rb
|
540
535
|
- spec/factories/assignments.rb
|
541
536
|
- spec/factories/canvas_api_auths.rb
|
542
|
-
- spec/factories/enrollments.rb
|
543
537
|
- spec/factories/canvas_batches.rb
|
538
|
+
- spec/factories/courses.rb
|
539
|
+
- spec/factories/enrollments.rb
|
544
540
|
- spec/factories/sections.rb
|
545
|
-
- spec/factories/
|
546
|
-
- spec/factories/users.rb
|
541
|
+
- spec/factories/submissions.rb
|
547
542
|
- spec/factories/terms.rb
|
548
|
-
- spec/
|
549
|
-
- spec/
|
550
|
-
- spec/
|
543
|
+
- spec/factories/users.rb
|
544
|
+
- spec/models/coalescing_panda/assignment_group_spec.rb
|
545
|
+
- spec/models/coalescing_panda/assignment_spec.rb
|
546
|
+
- spec/models/coalescing_panda/canvas_api_auth_spec.rb
|
547
|
+
- spec/models/coalescing_panda/canvas_batch_spec.rb
|
548
|
+
- spec/models/coalescing_panda/course_spec.rb
|
549
|
+
- spec/models/coalescing_panda/enrollment_spec.rb
|
550
|
+
- spec/models/coalescing_panda/group_membership_spec.rb
|
551
|
+
- spec/models/coalescing_panda/group_spec.rb
|
552
|
+
- spec/models/coalescing_panda/lti_account_spec.rb
|
553
|
+
- spec/models/coalescing_panda/lti_nonce_spec.rb
|
554
|
+
- spec/models/coalescing_panda/section_spec.rb
|
555
|
+
- spec/models/coalescing_panda/submission_spec.rb
|
556
|
+
- spec/models/coalescing_panda/term_spec.rb
|
557
|
+
- spec/models/coalescing_panda/user_spec.rb
|
558
|
+
- spec/models/coalescing_panda/workers/account_miner_spec.rb
|
559
|
+
- spec/models/coalescing_panda/workers/course_miner_spec.rb
|
551
560
|
- spec/rails_helper.rb
|
561
|
+
- spec/spec_helper.rb
|
552
562
|
homepage: http://www.instructure.com
|
553
563
|
licenses: []
|
554
564
|
metadata: {}
|
@@ -558,17 +568,16 @@ require_paths:
|
|
558
568
|
- lib
|
559
569
|
required_ruby_version: !ruby/object:Gem::Requirement
|
560
570
|
requirements:
|
561
|
-
- -
|
571
|
+
- - ">="
|
562
572
|
- !ruby/object:Gem::Version
|
563
573
|
version: '0'
|
564
574
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
565
575
|
requirements:
|
566
|
-
- -
|
576
|
+
- - ">="
|
567
577
|
- !ruby/object:Gem::Version
|
568
578
|
version: '0'
|
569
579
|
requirements: []
|
570
|
-
|
571
|
-
rubygems_version: 2.0.14
|
580
|
+
rubygems_version: 3.1.2
|
572
581
|
signing_key:
|
573
582
|
specification_version: 4
|
574
583
|
summary: Canvas LTI and OAUTH2 mountable engine
|