coalescing_panda 5.0.1 → 5.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +5 -5
  2. data/app/assets/config/coalescing_panda/manifest.js +3 -0
  3. data/app/controllers/coalescing_panda/canvas_batches_controller.rb +2 -2
  4. data/app/controllers/coalescing_panda/lti_controller.rb +1 -1
  5. data/app/helpers/coalescing_panda/canvas_batches_helper.rb +1 -1
  6. data/app/models/coalescing_panda/json_with_indifferent_access.rb +13 -0
  7. data/app/models/coalescing_panda/persistent_session.rb +2 -1
  8. data/db/migrate/20131114150001_create_coalescing_panda_canvas_api_auths.rb +1 -1
  9. data/db/migrate/20131118211442_create_coalescing_panda_lti_accounts.rb +1 -1
  10. data/db/migrate/20131119165343_create_coalescing_panda_lti_nonces.rb +1 -1
  11. data/db/migrate/20140904223159_create_coalescing_panda_sessions.rb +1 -1
  12. data/db/migrate/20141119225319_create_coalescing_panda_terms.rb +1 -1
  13. data/db/migrate/20141119225721_create_coalescing_panda_courses.rb +1 -1
  14. data/db/migrate/20141120151432_create_coalescing_panda_sections.rb +1 -1
  15. data/db/migrate/20141120151940_create_coalescing_panda_assignments.rb +1 -1
  16. data/db/migrate/20141120152458_create_coalescing_panda_users.rb +1 -1
  17. data/db/migrate/20141120152546_create_coalescing_panda_submissions.rb +1 -1
  18. data/db/migrate/20141120153135_create_coalescing_panda_enrollments.rb +1 -1
  19. data/db/migrate/20141121174846_create_coalescing_panda_canvas_batches.rb +1 -1
  20. data/db/migrate/20141124160857_create_delayed_jobs.rb +1 -1
  21. data/db/migrate/20141208221740_add_submission_types_to_assignments.rb +1 -1
  22. data/db/migrate/20150106175418_add_group_category_id_to_assignment.rb +1 -1
  23. data/db/migrate/20150106180131_add_published_to_assignments.rb +1 -1
  24. data/db/migrate/20150107205405_create_coalescing_panda_groups.rb +1 -1
  25. data/db/migrate/20150107205413_create_coalescing_panda_group_memberships.rb +1 -1
  26. data/db/migrate/20150210180516_add_context_to_canvas_batch.rb +1 -1
  27. data/db/migrate/20150506183335_create_coalescing_panda_assignment_groups.rb +1 -1
  28. data/db/migrate/20150506192717_add_assignment_group_id_to_assignments.rb +1 -1
  29. data/db/migrate/20150526144713_add_account_to_canvas_batches.rb +1 -1
  30. data/db/migrate/20150602205257_add_option_to_canvas_batches.rb +1 -1
  31. data/db/migrate/20150708192717_add_group_moderator_to_group_memberships.rb +1 -1
  32. data/db/migrate/20150709192717_add_leader_id_to_groups.rb +1 -1
  33. data/db/migrate/20150714205405_create_coalescing_panda_group_categories.rb +1 -1
  34. data/db/migrate/20150811140030_add_fields_to_users.rb +1 -1
  35. data/db/migrate/20151209155923_add_refresh_settings_to_canvas_api_auth.rb +1 -1
  36. data/db/migrate/20160830183155_create_coalescing_panda_oauth_states.rb +1 -1
  37. data/db/migrate/20200528224505_create_coalescing_panda_persistent_session.rb +1 -1
  38. data/lib/coalescing_panda/controller_helpers.rb +40 -23
  39. data/lib/coalescing_panda/engine.rb +12 -42
  40. data/lib/coalescing_panda/misc_helper.rb +13 -0
  41. data/lib/coalescing_panda/secure_headers.rb +84 -0
  42. data/lib/coalescing_panda/version.rb +1 -1
  43. 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
@@ -1,3 +1,3 @@
1
1
  module CoalescingPanda
2
- VERSION = '5.0.1'
2
+ VERSION = '5.0.7'
3
3
  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.1
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-07-22 00:00:00.000000000 Z
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.1.0
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.1.0
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/group_membership.rb
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/assignment.rb
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/session.rb
409
- - app/models/coalescing_panda/section.rb
410
- - app/models/coalescing_panda/term.rb
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/canvas_api_auth.rb
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/lti_nonce.rb
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/controllers/coalescing_panda/oauth2_controller.rb
425
- - app/controllers/coalescing_panda/application_controller.rb
426
- - app/controllers/coalescing_panda/lti_controller.rb
427
- - app/controllers/coalescing_panda/canvas_batches_controller.rb
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/20141120151432_create_coalescing_panda_sections.rb
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/20150506192717_add_assignment_group_id_to_assignments.rb
452
- - db/migrate/20160830183155_create_coalescing_panda_oauth_states.rb
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/20150709192717_add_leader_id_to_groups.rb
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/20141120153135_create_coalescing_panda_enrollments.rb
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/20150106175418_add_group_category_id_to_assignment.rb
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/20131114150001_create_coalescing_panda_canvas_api_auths.rb
476
- - db/migrate/20141119225319_create_coalescing_panda_terms.rb
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/version.rb
490
+ - lib/coalescing_panda/misc_helper.rb
483
491
  - lib/coalescing_panda/route_helpers.rb
484
- - Rakefile
485
- - spec/spec_helper.rb
486
- - spec/dummy/app/models/account.rb
487
- - spec/dummy/app/models/course.rb
488
- - spec/dummy/app/controllers/application_controller.rb
489
- - spec/dummy/app/views/layouts/application.html.erb
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/bin/rake
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/config/routes.rb
497
- - spec/dummy/config/locales/en.yml
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/initializers/lti_initializer.rb
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/initializers/secret_token.rb
512
- - spec/dummy/config/initializers/inflections.rb
513
- - spec/dummy/config.ru
514
- - spec/dummy/Rakefile
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/404.html
519
- - spec/dummy/db/schema.rb
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/accounts.rb
546
- - spec/factories/users.rb
541
+ - spec/factories/submissions.rb
547
542
  - spec/factories/terms.rb
548
- - spec/controllers/coalescing_panda/canvas_batches_controller_spec.rb
549
- - spec/controllers/coalescing_panda/oauth2_controller_spec.rb
550
- - spec/controllers/coalescing_panda/lti_controller_spec.rb
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
- rubyforge_project:
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