coalescing_panda 5.1.9 → 5.1.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 71ba5139ece1d7656ecc8926e5054d98f392eeb8f2265977475cfa7c5ef1b931
4
- data.tar.gz: cb89b5b754ab22c61c8db8328352a9a1321a07fd110680929efa38c29fa44259
2
+ SHA1:
3
+ metadata.gz: 204da506a48c2fa7b478185259b0a59276631407
4
+ data.tar.gz: 2cd6d50876316e7b54d499c381d705b71827a535
5
5
  SHA512:
6
- metadata.gz: b7df9705ce993d7cd861ce76e8f20c89a07fac76397db16e59fc4ef1608e94020fbe662e1ab0723efe0d86d1513fb99a42419b1cce4dcfdbb0a90269998f7c88
7
- data.tar.gz: 452340b6e59f9dcd3d8cec27975c22a2fd2f6ef1f1a99dd96486a33259cd571afe913c79a0e43ef5a476bab013ac60b7a0c83d1140be697e32b7bd6bdf64c665
6
+ metadata.gz: 6dd78d6695fd7f9f0c248422ef460ce650ca36430b468da69add1f6dd1e513ebe0966816753216ead81a0ebea4456167f2842d385ccf0615a314aba31308da0a
7
+ data.tar.gz: 8aa5fa556c55326dbe5dfccdc818fdb4b874db938523c6ca4b9c27ece3e4d2e78ec2720ac8cf7065680daf111c7e79d4a7c816929a778da0794017f2799536f4
@@ -2,7 +2,6 @@ class CreateCoalescingPandaGroupCategories < CoalescingPanda::MiscHelper::Migrat
2
2
  def change
3
3
  create_table :coalescing_panda_group_categories do |t|
4
4
  t.belongs_to :context, polymorphic: true
5
- t.string :context_type
6
5
  t.integer :canvas_group_category_id
7
6
  t.string :name
8
7
 
@@ -1,24 +1,26 @@
1
- class CoalescingPanda::BearcatUri
2
- attr_accessor :uri
1
+ module CoalescingPanda
2
+ class BearcatUri
3
+ attr_accessor :uri
3
4
 
4
- def initialize(uri)
5
- Rails.logger.info "Parsing Bearcat URI: #{uri}"
6
- @uri = URI.parse(uri)
7
- end
5
+ def initialize(uri)
6
+ Rails.logger.info "Parsing Bearcat URI: #{uri}"
7
+ @uri = URI.parse(uri)
8
+ end
8
9
 
9
- def api_domain
10
- if Rails.env.test? or Rails.env.development?
11
- uri.port.present? ? URI.encode("#{uri.host}:#{uri.port.to_s}") : uri.host
12
- else
13
- uri.host
10
+ def api_domain
11
+ if Rails.env.test? or Rails.env.development?
12
+ uri.port.present? ? URI.encode("#{uri.host}:#{uri.port.to_s}") : uri.host
13
+ else
14
+ uri.host
15
+ end
14
16
  end
15
- end
16
17
 
17
- def scheme
18
- [uri.scheme, '://'].join
19
- end
18
+ def scheme
19
+ [uri.scheme, '://'].join
20
+ end
20
21
 
21
- def prefix
22
- [scheme, api_domain].join
22
+ def prefix
23
+ [scheme, api_domain].join
24
+ end
23
25
  end
24
- end
26
+ end
@@ -1,5 +1,6 @@
1
1
  require 'browser'
2
2
  require_relative 'session_replacement'
3
+ require_relative 'bearcat_uri'
3
4
 
4
5
  module CoalescingPanda
5
6
  module ControllerHelpers
@@ -18,8 +19,8 @@ module CoalescingPanda
18
19
  if lti_authorize!(*roles)
19
20
  user_id = params['user_id']
20
21
  launch_presentation_return_url = @lti_account.settings[:launch_presentation_return_url] || params['launch_presentation_return_url']
21
- launch_presentation_return_url = [BearcatUri.new(request.env["HTTP_REFERER"]).prefix, launch_presentation_return_url].join unless launch_presentation_return_url.include?('http')
22
- uri = BearcatUri.new(launch_presentation_return_url)
22
+ launch_presentation_return_url = [CoalescingPanda::BearcatUri.new(request.env["HTTP_REFERER"]).prefix, launch_presentation_return_url].join unless launch_presentation_return_url.include?('http')
23
+ uri = CoalescingPanda::BearcatUri.new(launch_presentation_return_url)
23
24
  set_session(launch_presentation_return_url)
24
25
 
25
26
  api_auth = CanvasApiAuth.find_by('user_id = ? and api_domain = ?', user_id, uri.api_domain)
@@ -50,7 +51,7 @@ module CoalescingPanda
50
51
  @canvas_url = client.auth_redirect_url(client_id, resolve_coalescing_panda_url(:oauth2_redirect_url), { state: state })
51
52
 
52
53
  #delete the added params so the original oauth sig still works
53
- @lti_params = params.to_hash
54
+ @lti_params = params.to_unsafe_h
54
55
  @lti_params.delete('action')
55
56
  @lti_params.delete('controller')
56
57
  render 'coalescing_panda/oauth2/oauth2', layout: 'coalescing_panda/application'
@@ -65,7 +66,7 @@ module CoalescingPanda
65
66
 
66
67
  def check_refresh_token
67
68
  return unless current_session_data['uri'] && current_session_data['user_id'] && current_session_data['oauth_consumer_key']
68
- uri = BearcatUri.new(current_session_data['uri'])
69
+ uri = CoalescingPanda::BearcatUri.new(current_session_data['uri'])
69
70
  api_auth = CanvasApiAuth.find_by(user_id: current_session_data['user_id'], api_domain: uri.api_domain)
70
71
  @lti_account = LtiAccount.find_by(key: current_session_data['oauth_consumer_key'])
71
72
  return if @lti_account.nil? || api_auth.nil? # Not all tools use oauth
@@ -91,7 +92,7 @@ module CoalescingPanda
91
92
  end
92
93
 
93
94
  if (current_session_data['user_id'] && current_session_data['uri'])
94
- uri = BearcatUri.new(current_session_data['uri'])
95
+ uri = CoalescingPanda::BearcatUri.new(current_session_data['uri'])
95
96
  api_auth = CanvasApiAuth.find_by('user_id = ? and api_domain = ?', current_session_data['user_id'], uri.api_domain)
96
97
  if api_auth && !api_auth.expired?
97
98
  @client = Bearcat::Client.new(token: api_auth.api_token, prefix: uri.prefix)
@@ -1,3 +1,3 @@
1
1
  module CoalescingPanda
2
- VERSION = '5.1.9'
2
+ VERSION = '5.1.13'
3
3
  end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  # This file is auto-generated from the current state of the database. Instead
2
3
  # of editing this file, please use the migrations feature of Active Record to
3
4
  # incrementally modify your database, and then regenerate this schema definition.
@@ -10,249 +11,263 @@
10
11
  #
11
12
  # It's strongly recommended that you check this file into your version control system.
12
13
 
13
- ActiveRecord::Schema.define(version: 2020_05_28_224505) do
14
+ ActiveRecord::Schema.define(version: 20160830183155) do
14
15
 
15
16
  create_table "coalescing_panda_assignment_groups", force: :cascade do |t|
16
- t.integer "coalescing_panda_course_id", null: false
17
- t.string "context_type"
18
- t.integer "context_id"
19
- t.string "canvas_assignment_group_id"
20
- t.string "name"
21
- t.integer "position"
22
- t.float "group_weight"
23
- t.string "workflow_state"
17
+ t.integer "coalescing_panda_course_id", null: false
18
+ t.integer "context_id"
19
+ t.string "context_type"
20
+ t.string "canvas_assignment_group_id"
21
+ t.string "name"
22
+ t.integer "position"
23
+ t.float "group_weight"
24
+ t.string "workflow_state"
24
25
  t.datetime "created_at"
25
26
  t.datetime "updated_at"
26
- t.index ["canvas_assignment_group_id", "context_id", "context_type"], name: "index_assignment_group_context", unique: true
27
- t.index ["coalescing_panda_course_id", "canvas_assignment_group_id"], name: "index_assignment_group_course", unique: true
28
27
  end
29
28
 
29
+ add_index "coalescing_panda_assignment_groups", ["canvas_assignment_group_id", "context_id", "context_type"], name: "index_assignment_group_context", unique: true
30
+ add_index "coalescing_panda_assignment_groups", ["coalescing_panda_course_id", "canvas_assignment_group_id"], name: "index_assignment_group_course", unique: true
31
+
30
32
  create_table "coalescing_panda_assignments", force: :cascade do |t|
31
- t.integer "coalescing_panda_course_id", null: false
32
- t.string "name"
33
- t.text "description"
34
- t.string "canvas_assignment_id", null: false
35
- t.string "workflow_state"
36
- t.float "points_possible"
33
+ t.integer "coalescing_panda_course_id", null: false
34
+ t.string "name"
35
+ t.text "description"
36
+ t.string "canvas_assignment_id", null: false
37
+ t.string "workflow_state"
38
+ t.float "points_possible"
37
39
  t.datetime "due_at"
38
40
  t.datetime "unlock_at"
39
41
  t.datetime "lock_at"
40
42
  t.datetime "created_at"
41
43
  t.datetime "updated_at"
42
- t.text "submission_types"
43
- t.integer "group_category_id"
44
- t.boolean "grade_group_students_individually"
45
- t.boolean "published"
46
- t.integer "coalescing_panda_assignment_group_id"
47
- t.integer "coalescing_panda_group_category_id"
48
- t.index ["coalescing_panda_course_id", "canvas_assignment_id"], name: "index_assignments_course", unique: true
44
+ t.text "submission_types"
45
+ t.integer "group_category_id"
46
+ t.boolean "grade_group_students_individually"
47
+ t.boolean "published"
48
+ t.integer "coalescing_panda_assignment_group_id"
49
+ t.integer "coalescing_panda_group_category_id"
49
50
  end
50
51
 
52
+ add_index "coalescing_panda_assignments", ["coalescing_panda_course_id", "canvas_assignment_id"], name: "index_assignments_course", unique: true
53
+
51
54
  create_table "coalescing_panda_canvas_api_auths", force: :cascade do |t|
52
- t.string "user_id"
53
- t.string "api_domain"
54
- t.string "api_token"
55
+ t.string "user_id"
56
+ t.string "api_domain"
57
+ t.string "api_token"
55
58
  t.datetime "created_at"
56
59
  t.datetime "updated_at"
57
- t.string "refresh_token"
60
+ t.string "refresh_token"
58
61
  t.datetime "expires_at"
59
62
  end
60
63
 
61
64
  create_table "coalescing_panda_canvas_batches", force: :cascade do |t|
62
- t.float "percent_complete", default: 0.0
63
- t.string "status"
64
- t.text "message"
65
+ t.float "percent_complete", default: 0.0
66
+ t.string "status"
67
+ t.text "message"
65
68
  t.datetime "created_at"
66
69
  t.datetime "updated_at"
67
- t.integer "context_id"
68
- t.string "context_type"
69
- t.integer "coalescing_panda_lti_account_id"
70
- t.text "options"
70
+ t.integer "context_id"
71
+ t.string "context_type"
72
+ t.integer "coalescing_panda_lti_account_id"
73
+ t.text "options"
71
74
  end
72
75
 
73
76
  create_table "coalescing_panda_courses", force: :cascade do |t|
74
- t.integer "coalescing_panda_lti_account_id", null: false
75
- t.integer "coalescing_panda_term_id"
76
- t.string "name"
77
- t.string "canvas_course_id", null: false
78
- t.string "sis_id"
77
+ t.integer "coalescing_panda_lti_account_id", null: false
78
+ t.integer "coalescing_panda_term_id"
79
+ t.string "name"
80
+ t.string "canvas_course_id", null: false
81
+ t.string "sis_id"
79
82
  t.datetime "start_at"
80
83
  t.datetime "conclude_at"
81
- t.string "workflow_state"
82
- t.string "course_code"
84
+ t.string "workflow_state"
85
+ t.string "course_code"
83
86
  t.datetime "created_at"
84
87
  t.datetime "updated_at"
85
- t.index ["coalescing_panda_lti_account_id", "canvas_course_id"], name: "index_courses_account", unique: true
86
- t.index ["coalescing_panda_term_id", "canvas_course_id"], name: "index_courses_term", unique: true
87
- t.index ["sis_id"], name: "index_coalescing_panda_courses_on_sis_id"
88
88
  end
89
89
 
90
+ add_index "coalescing_panda_courses", ["coalescing_panda_lti_account_id", "canvas_course_id"], name: "index_courses_account", unique: true
91
+ add_index "coalescing_panda_courses", ["coalescing_panda_term_id", "canvas_course_id"], name: "index_courses_term", unique: true
92
+ add_index "coalescing_panda_courses", ["sis_id"], name: "index_coalescing_panda_courses_on_sis_id"
93
+
90
94
  create_table "coalescing_panda_enrollments", force: :cascade do |t|
91
- t.integer "coalescing_panda_user_id", null: false
92
- t.integer "coalescing_panda_section_id", null: false
93
- t.string "workflow_state"
94
- t.string "sis_id"
95
- t.string "canvas_enrollment_id", null: false
96
- t.string "enrollment_type"
95
+ t.integer "coalescing_panda_user_id", null: false
96
+ t.integer "coalescing_panda_section_id", null: false
97
+ t.string "workflow_state"
98
+ t.string "sis_id"
99
+ t.string "canvas_enrollment_id", null: false
100
+ t.string "enrollment_type"
97
101
  t.datetime "start_at"
98
102
  t.datetime "end_at"
99
103
  t.datetime "created_at"
100
104
  t.datetime "updated_at"
101
- t.index ["coalescing_panda_user_id", "coalescing_panda_section_id", "enrollment_type"], name: "index_enrollments_user_and_section", unique: true
102
- t.index ["sis_id"], name: "index_coalescing_panda_enrollments_on_sis_id"
103
105
  end
104
106
 
107
+ add_index "coalescing_panda_enrollments", ["coalescing_panda_user_id", "coalescing_panda_section_id", "enrollment_type"], name: "index_enrollments_user_and_section", unique: true
108
+ add_index "coalescing_panda_enrollments", ["sis_id"], name: "index_coalescing_panda_enrollments_on_sis_id"
109
+
105
110
  create_table "coalescing_panda_group_categories", force: :cascade do |t|
106
- t.string "context_type"
107
- t.integer "context_id"
108
- t.integer "canvas_group_category_id"
109
- t.string "name"
111
+ t.integer "context_id"
112
+ t.string "context_type"
113
+ t.integer "canvas_group_category_id"
114
+ t.string "name"
110
115
  t.datetime "created_at"
111
116
  t.datetime "updated_at"
112
- t.index ["context_id", "context_type"], name: "index_group_categories_context_and_context_type"
113
117
  end
114
118
 
119
+ add_index "coalescing_panda_group_categories", ["context_id", "context_type"], name: "index_group_categories_context_and_context_type"
120
+
115
121
  create_table "coalescing_panda_group_memberships", force: :cascade do |t|
116
- t.integer "coalescing_panda_group_id"
117
- t.integer "coalescing_panda_user_id"
118
- t.string "canvas_group_membership_id"
119
- t.string "workflow_state"
122
+ t.integer "coalescing_panda_group_id"
123
+ t.integer "coalescing_panda_user_id"
124
+ t.string "canvas_group_membership_id"
125
+ t.string "workflow_state"
120
126
  t.datetime "created_at"
121
127
  t.datetime "updated_at"
122
- t.boolean "moderator"
123
- t.index ["coalescing_panda_group_id", "coalescing_panda_user_id"], name: "index_group_memberships_user_and_group", unique: true
128
+ t.boolean "moderator"
124
129
  end
125
130
 
131
+ add_index "coalescing_panda_group_memberships", ["coalescing_panda_group_id", "coalescing_panda_user_id"], name: "index_group_memberships_user_and_group", unique: true
132
+
126
133
  create_table "coalescing_panda_groups", force: :cascade do |t|
127
- t.string "context_type"
128
- t.integer "context_id"
129
- t.string "description"
130
- t.string "group_category_id"
131
- t.string "canvas_group_id"
132
- t.string "name"
133
- t.integer "members_count"
134
+ t.integer "context_id"
135
+ t.string "context_type"
136
+ t.string "description"
137
+ t.string "group_category_id"
138
+ t.string "canvas_group_id"
139
+ t.string "name"
140
+ t.integer "members_count"
134
141
  t.datetime "created_at"
135
142
  t.datetime "updated_at"
136
- t.integer "leader_id"
137
- t.integer "coalescing_panda_group_category_id"
138
- t.index ["context_id", "canvas_group_id"], name: "index_groups_context_and_group_id", unique: true
143
+ t.integer "leader_id"
144
+ t.integer "coalescing_panda_group_category_id"
139
145
  end
140
146
 
147
+ add_index "coalescing_panda_groups", ["context_id", "canvas_group_id"], name: "index_groups_context_and_group_id", unique: true
148
+
141
149
  create_table "coalescing_panda_lti_accounts", force: :cascade do |t|
142
- t.string "name"
143
- t.string "key"
144
- t.string "secret"
145
- t.string "oauth2_client_id"
146
- t.string "oauth2_client_key"
147
- t.string "canvas_account_id"
148
- t.text "settings"
150
+ t.string "name"
151
+ t.string "key"
152
+ t.string "secret"
153
+ t.string "oauth2_client_id"
154
+ t.string "oauth2_client_key"
155
+ t.string "canvas_account_id"
156
+ t.text "settings"
149
157
  t.datetime "created_at"
150
158
  t.datetime "updated_at"
151
159
  end
152
160
 
153
161
  create_table "coalescing_panda_lti_nonces", force: :cascade do |t|
154
- t.integer "coalescing_panda_lti_account_id"
155
- t.string "nonce"
162
+ t.integer "coalescing_panda_lti_account_id"
163
+ t.string "nonce"
156
164
  t.datetime "timestamp"
157
165
  end
158
166
 
159
167
  create_table "coalescing_panda_oauth_states", force: :cascade do |t|
160
- t.string "state_key"
161
- t.text "data"
168
+ t.string "state_key"
169
+ t.text "data"
162
170
  t.datetime "created_at"
163
171
  t.datetime "updated_at"
164
- t.index ["state_key"], name: "index_coalescing_panda_oauth_states_on_state_key", unique: true
165
172
  end
166
173
 
174
+ add_index "coalescing_panda_oauth_states", ["state_key"], name: "index_coalescing_panda_oauth_states_on_state_key", unique: true
175
+
167
176
  create_table "coalescing_panda_persistent_sessions", force: :cascade do |t|
168
- t.string "session_key"
169
- t.text "data"
170
- t.integer "coalescing_panda_lti_account_id"
171
- t.datetime "created_at", null: false
172
- t.datetime "updated_at", null: false
173
- t.index ["coalescing_panda_lti_account_id"], name: "index_persistent_session_on_lti_account_id"
174
- t.index ["session_key"], name: "index_coalescing_panda_persistent_sessions_on_session_key", unique: true
177
+ t.string "session_key"
178
+ t.text "data"
179
+ t.integer "coalescing_panda_lti_account_id"
180
+ t.datetime "created_at", null: false
181
+ t.datetime "updated_at", null: false
175
182
  end
176
183
 
184
+ add_index "coalescing_panda_persistent_sessions", ["coalescing_panda_lti_account_id"], name: "index_persistent_session_on_lti_account_id", using: :btree
185
+ add_index "coalescing_panda_persistent_sessions", ["session_key"], name: "index_coalescing_panda_persistent_sessions_on_session_key", unique: true, using: :btree
186
+
177
187
  create_table "coalescing_panda_sections", force: :cascade do |t|
178
- t.integer "coalescing_panda_course_id", null: false
179
- t.string "name"
180
- t.string "canvas_section_id", null: false
181
- t.string "sis_id"
182
- t.string "workflow_state"
188
+ t.integer "coalescing_panda_course_id", null: false
189
+ t.string "name"
190
+ t.string "canvas_section_id", null: false
191
+ t.string "sis_id"
192
+ t.string "workflow_state"
183
193
  t.datetime "start_at"
184
194
  t.datetime "end_at"
185
195
  t.datetime "created_at"
186
196
  t.datetime "updated_at"
187
- t.index ["coalescing_panda_course_id", "canvas_section_id"], name: "index_sections_course", unique: true
188
- t.index ["sis_id"], name: "index_coalescing_panda_sections_on_sis_id"
189
197
  end
190
198
 
199
+ add_index "coalescing_panda_sections", ["coalescing_panda_course_id", "canvas_section_id"], name: "index_sections_course", unique: true
200
+ add_index "coalescing_panda_sections", ["sis_id"], name: "index_coalescing_panda_sections_on_sis_id"
201
+
191
202
  create_table "coalescing_panda_sessions", force: :cascade do |t|
192
- t.string "token"
193
- t.text "data"
203
+ t.string "token"
204
+ t.text "data"
194
205
  t.datetime "created_at"
195
206
  t.datetime "updated_at"
196
207
  end
197
208
 
198
209
  create_table "coalescing_panda_submissions", force: :cascade do |t|
199
- t.integer "coalescing_panda_user_id", null: false
200
- t.integer "coalescing_panda_assignment_id", null: false
201
- t.string "url"
202
- t.string "grade"
203
- t.string "score"
210
+ t.integer "coalescing_panda_user_id", null: false
211
+ t.integer "coalescing_panda_assignment_id", null: false
212
+ t.string "url"
213
+ t.string "grade"
214
+ t.string "score"
204
215
  t.datetime "submitted_at"
205
- t.string "workflow_state"
206
- t.string "canvas_submission_id", null: false
216
+ t.string "workflow_state"
217
+ t.string "canvas_submission_id", null: false
207
218
  t.datetime "created_at"
208
219
  t.datetime "updated_at"
209
- t.index ["canvas_submission_id"], name: "index_coalescing_panda_submissions_on_canvas_submission_id"
210
- t.index ["coalescing_panda_user_id", "coalescing_panda_assignment_id", "canvas_submission_id"], name: "index_submissions_user_and_assignment", unique: true
211
220
  end
212
221
 
222
+ add_index "coalescing_panda_submissions", ["canvas_submission_id"], name: "index_coalescing_panda_submissions_on_canvas_submission_id"
223
+ add_index "coalescing_panda_submissions", ["coalescing_panda_user_id", "coalescing_panda_assignment_id", "canvas_submission_id"], name: "index_submissions_user_and_assignment", unique: true
224
+
213
225
  create_table "coalescing_panda_terms", force: :cascade do |t|
214
- t.integer "coalescing_panda_lti_account_id", null: false
215
- t.string "name"
216
- t.string "code"
217
- t.string "sis_id"
218
- t.string "canvas_term_id", null: false
226
+ t.integer "coalescing_panda_lti_account_id", null: false
227
+ t.string "name"
228
+ t.string "code"
229
+ t.string "sis_id"
230
+ t.string "canvas_term_id", null: false
219
231
  t.datetime "start_at"
220
232
  t.datetime "end_at"
221
- t.string "workflow_state"
233
+ t.string "workflow_state"
222
234
  t.datetime "created_at"
223
235
  t.datetime "updated_at"
224
- t.index ["canvas_term_id", "coalescing_panda_lti_account_id"], name: "index_terms_account", unique: true
225
- t.index ["sis_id"], name: "index_coalescing_panda_terms_on_sis_id"
226
236
  end
227
237
 
238
+ add_index "coalescing_panda_terms", ["canvas_term_id", "coalescing_panda_lti_account_id"], name: "index_terms_account", unique: true
239
+ add_index "coalescing_panda_terms", ["sis_id"], name: "index_coalescing_panda_terms_on_sis_id"
240
+
228
241
  create_table "coalescing_panda_users", force: :cascade do |t|
229
- t.integer "coalescing_panda_lti_account_id", null: false
230
- t.string "name"
231
- t.string "email"
232
- t.string "roles"
233
- t.string "workflow_state"
234
- t.string "sis_id"
235
- t.string "canvas_user_id", null: false
242
+ t.integer "coalescing_panda_lti_account_id", null: false
243
+ t.string "name"
244
+ t.string "email"
245
+ t.string "roles"
246
+ t.string "workflow_state"
247
+ t.string "sis_id"
248
+ t.string "canvas_user_id", null: false
236
249
  t.datetime "created_at"
237
250
  t.datetime "updated_at"
238
- t.string "login_id"
239
- t.index ["coalescing_panda_lti_account_id", "canvas_user_id"], name: "index_users_account", unique: true
240
- t.index ["sis_id"], name: "index_coalescing_panda_users_on_sis_id"
251
+ t.string "login_id"
241
252
  end
242
253
 
254
+ add_index "coalescing_panda_users", ["coalescing_panda_lti_account_id", "canvas_user_id"], name: "index_users_account", unique: true
255
+ add_index "coalescing_panda_users", ["sis_id"], name: "index_coalescing_panda_users_on_sis_id"
256
+
243
257
  create_table "delayed_jobs", force: :cascade do |t|
244
- t.integer "priority", default: 0, null: false
245
- t.integer "attempts", default: 0, null: false
246
- t.text "handler", null: false
247
- t.text "last_error"
258
+ t.integer "priority", default: 0, null: false
259
+ t.integer "attempts", default: 0, null: false
260
+ t.text "handler", null: false
261
+ t.text "last_error"
248
262
  t.datetime "run_at"
249
263
  t.datetime "locked_at"
250
264
  t.datetime "failed_at"
251
- t.string "locked_by"
252
- t.string "queue"
265
+ t.string "locked_by"
266
+ t.string "queue"
253
267
  t.datetime "created_at"
254
268
  t.datetime "updated_at"
255
- t.index ["priority", "run_at"], name: "delayed_jobs_priority"
256
269
  end
257
270
 
271
+ add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority"
272
+
258
273
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coalescing_panda
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.9
4
+ version: 5.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Mills
8
8
  - Cody Tanner
9
9
  - Jake Sorce
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-07-21 00:00:00.000000000 Z
13
+ date: 2021-09-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -410,7 +410,7 @@ dependencies:
410
410
  - - ">="
411
411
  - !ruby/object:Gem::Version
412
412
  version: '0'
413
- description:
413
+ description:
414
414
  email:
415
415
  - nathanm@instructure.com
416
416
  - ctanner@instructure.com
@@ -540,9 +540,7 @@ files:
540
540
  - spec/dummy/config/initializers/wrap_parameters.rb
541
541
  - spec/dummy/config/locales/en.yml
542
542
  - spec/dummy/config/routes.rb
543
- - spec/dummy/db/development.sqlite3
544
543
  - spec/dummy/db/schema.rb
545
- - spec/dummy/db/test.sqlite3
546
544
  - spec/dummy/public/404.html
547
545
  - spec/dummy/public/422.html
548
546
  - spec/dummy/public/500.html
@@ -579,7 +577,7 @@ files:
579
577
  homepage: http://www.instructure.com
580
578
  licenses: []
581
579
  metadata: {}
582
- post_install_message:
580
+ post_install_message:
583
581
  rdoc_options: []
584
582
  require_paths:
585
583
  - lib
@@ -594,77 +592,76 @@ required_rubygems_version: !ruby/object:Gem::Requirement
594
592
  - !ruby/object:Gem::Version
595
593
  version: '0'
596
594
  requirements: []
597
- rubygems_version: 3.0.3
598
- signing_key:
595
+ rubyforge_project:
596
+ rubygems_version: 2.6.14.4
597
+ signing_key:
599
598
  specification_version: 4
600
599
  summary: Canvas LTI and OAUTH2 mountable engine
601
600
  test_files:
602
- - spec/rails_helper.rb
603
- - spec/models/coalescing_panda/canvas_api_auth_spec.rb
604
- - spec/models/coalescing_panda/assignment_spec.rb
605
- - spec/models/coalescing_panda/group_membership_spec.rb
606
- - spec/models/coalescing_panda/lti_account_spec.rb
607
- - spec/models/coalescing_panda/section_spec.rb
608
- - spec/models/coalescing_panda/workers/course_miner_spec.rb
609
- - spec/models/coalescing_panda/workers/account_miner_spec.rb
610
- - spec/models/coalescing_panda/group_spec.rb
611
- - spec/models/coalescing_panda/lti_nonce_spec.rb
612
- - spec/models/coalescing_panda/submission_spec.rb
613
- - spec/models/coalescing_panda/term_spec.rb
614
- - spec/models/coalescing_panda/canvas_batch_spec.rb
615
- - spec/models/coalescing_panda/enrollment_spec.rb
616
- - spec/models/coalescing_panda/course_spec.rb
617
- - spec/models/coalescing_panda/user_spec.rb
618
- - spec/models/coalescing_panda/assignment_group_spec.rb
619
- - spec/controllers/coalescing_panda/oauth2_controller_spec.rb
620
- - spec/controllers/coalescing_panda/lti_controller_spec.rb
621
- - spec/controllers/coalescing_panda/canvas_batches_controller_spec.rb
622
601
  - spec/spec_helper.rb
623
- - spec/dummy/db/schema.rb
624
- - spec/dummy/db/test.sqlite3
625
- - spec/dummy/db/development.sqlite3
626
- - spec/dummy/public/422.html
627
- - spec/dummy/public/favicon.ico
628
- - spec/dummy/public/404.html
629
- - spec/dummy/public/500.html
630
- - spec/dummy/Rakefile
631
- - spec/dummy/app/views/layouts/application.html.erb
632
602
  - spec/dummy/app/models/account.rb
633
603
  - spec/dummy/app/models/course.rb
634
604
  - spec/dummy/app/controllers/application_controller.rb
635
- - spec/dummy/app/helpers/application_helper.rb
636
- - spec/dummy/app/assets/stylesheets/application.css
605
+ - spec/dummy/app/views/layouts/application.html.erb
637
606
  - spec/dummy/app/assets/javascripts/application.js
607
+ - spec/dummy/app/assets/stylesheets/application.css
608
+ - spec/dummy/app/helpers/application_helper.rb
609
+ - spec/dummy/bin/rake
610
+ - spec/dummy/bin/bundle
611
+ - spec/dummy/bin/rails
612
+ - spec/dummy/config/routes.rb
613
+ - spec/dummy/config/locales/en.yml
614
+ - spec/dummy/config/environments/production.rb
615
+ - spec/dummy/config/environments/development.rb
616
+ - spec/dummy/config/environments/test.rb
617
+ - spec/dummy/config/environment.rb
638
618
  - spec/dummy/config/application.rb
619
+ - spec/dummy/config/database.yml
620
+ - spec/dummy/config/boot.rb
639
621
  - spec/dummy/config/initializers/lti_initializer.rb
622
+ - spec/dummy/config/initializers/backtrace_silencers.rb
623
+ - spec/dummy/config/initializers/mime_types.rb
624
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
640
625
  - spec/dummy/config/initializers/session_store.rb
641
- - spec/dummy/config/initializers/secret_token.rb
642
626
  - spec/dummy/config/initializers/wrap_parameters.rb
627
+ - spec/dummy/config/initializers/secret_token.rb
643
628
  - spec/dummy/config/initializers/inflections.rb
644
- - spec/dummy/config/initializers/filter_parameter_logging.rb
645
- - spec/dummy/config/initializers/mime_types.rb
646
- - spec/dummy/config/initializers/backtrace_silencers.rb
647
- - spec/dummy/config/environments/development.rb
648
- - spec/dummy/config/environments/test.rb
649
- - spec/dummy/config/environments/production.rb
650
- - spec/dummy/config/database.yml
651
- - spec/dummy/config/boot.rb
652
- - spec/dummy/config/routes.rb
653
- - spec/dummy/config/environment.rb
654
- - spec/dummy/config/locales/en.yml
655
- - spec/dummy/README.rdoc
656
629
  - spec/dummy/config.ru
657
- - spec/dummy/bin/bundle
658
- - spec/dummy/bin/rake
659
- - spec/dummy/bin/rails
660
- - spec/factories/accounts.rb
661
- - spec/factories/enrollments.rb
662
- - spec/factories/terms.rb
663
- - spec/factories/sections.rb
664
- - spec/factories/canvas_batches.rb
665
- - spec/factories/assignment_groups.rb
666
- - spec/factories/submissions.rb
630
+ - spec/dummy/Rakefile
631
+ - spec/dummy/public/favicon.ico
632
+ - spec/dummy/public/422.html
633
+ - spec/dummy/public/500.html
634
+ - spec/dummy/public/404.html
635
+ - spec/dummy/db/schema.rb
636
+ - spec/dummy/README.rdoc
637
+ - spec/models/coalescing_panda/enrollment_spec.rb
638
+ - spec/models/coalescing_panda/section_spec.rb
639
+ - spec/models/coalescing_panda/lti_nonce_spec.rb
640
+ - spec/models/coalescing_panda/lti_account_spec.rb
641
+ - spec/models/coalescing_panda/canvas_batch_spec.rb
642
+ - spec/models/coalescing_panda/term_spec.rb
643
+ - spec/models/coalescing_panda/assignment_spec.rb
644
+ - spec/models/coalescing_panda/submission_spec.rb
645
+ - spec/models/coalescing_panda/assignment_group_spec.rb
646
+ - spec/models/coalescing_panda/group_spec.rb
647
+ - spec/models/coalescing_panda/workers/account_miner_spec.rb
648
+ - spec/models/coalescing_panda/workers/course_miner_spec.rb
649
+ - spec/models/coalescing_panda/canvas_api_auth_spec.rb
650
+ - spec/models/coalescing_panda/group_membership_spec.rb
651
+ - spec/models/coalescing_panda/user_spec.rb
652
+ - spec/models/coalescing_panda/course_spec.rb
667
653
  - spec/factories/courses.rb
654
+ - spec/factories/submissions.rb
655
+ - spec/factories/assignment_groups.rb
668
656
  - spec/factories/assignments.rb
669
- - spec/factories/users.rb
670
657
  - spec/factories/canvas_api_auths.rb
658
+ - spec/factories/enrollments.rb
659
+ - spec/factories/canvas_batches.rb
660
+ - spec/factories/sections.rb
661
+ - spec/factories/accounts.rb
662
+ - spec/factories/users.rb
663
+ - spec/factories/terms.rb
664
+ - spec/controllers/coalescing_panda/canvas_batches_controller_spec.rb
665
+ - spec/controllers/coalescing_panda/oauth2_controller_spec.rb
666
+ - spec/controllers/coalescing_panda/lti_controller_spec.rb
667
+ - spec/rails_helper.rb
Binary file
Binary file