openstax_accounts 7.5.0 → 7.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/handlers/openstax/accounts/dev/accounts_create.rb +4 -3
- data/app/representers/openstax/accounts/api/v1/unclaimed_account_representer.rb +7 -0
- data/app/routines/openstax/accounts/dev/create_account.rb +2 -0
- data/app/routines/openstax/accounts/find_or_create_account.rb +4 -0
- data/app/views/openstax/accounts/dev/accounts/index.html.erb +3 -2
- data/lib/openstax/accounts/version.rb +1 -1
- data/spec/cassettes/OpenStax_Accounts_FindOrCreateAccount/can_create_users.yml +88 -64
- data/spec/dummy/log/test.log +3770 -0
- data/spec/routines/openstax/accounts/find_or_create_account_spec.rb +3 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d81c2870f0cf53cc0f2a2e62dffa46d91e00827
|
4
|
+
data.tar.gz: 8d1cdb83f09c41c191aa797c4225000266d9f5f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa7630f877a37c8f012bdff3b2382d3a23dc7c3ddac56c18137a1ad2e8a0031b570e046a5304ecfe00ebc6f4445fe1ab957229b3f17deb15e5b1b4188ff8cbe5
|
7
|
+
data.tar.gz: 4d832b3054819da99d628e42174e10f9b3175d69eaf55caa930e1d4b586a12bb8d7473ab3f94e0cdd02f99ca639880d8ec3b05491aeb63b5fdd4137c66e76a7b
|
@@ -9,6 +9,7 @@ module OpenStax
|
|
9
9
|
paramify :create do
|
10
10
|
attribute :username, type: String
|
11
11
|
validates :username, presence: true
|
12
|
+
attribute :role, type: String
|
12
13
|
end
|
13
14
|
|
14
15
|
uses_routine OpenStax::Accounts::Dev::CreateAccount,
|
@@ -23,11 +24,11 @@ module OpenStax
|
|
23
24
|
end
|
24
25
|
|
25
26
|
def handle
|
26
|
-
run(:create_account, create_params.as_hash(:username))
|
27
|
+
run(:create_account, create_params.as_hash(:username, :role))
|
27
28
|
end
|
28
29
|
|
29
|
-
end
|
30
|
+
end
|
30
31
|
end
|
31
32
|
|
32
33
|
end
|
33
|
-
end
|
34
|
+
end
|
@@ -17,6 +17,7 @@ module OpenStax
|
|
17
17
|
# We can only stub finding by username b/c accounts-rails doesn't persist emails
|
18
18
|
id = Account.find_by(username: username).try!(:openstax_uid) ||
|
19
19
|
-SecureRandom.hex(4).to_i(16)/2
|
20
|
+
uuid = SecureRandom.uuid
|
20
21
|
else
|
21
22
|
response = Api.find_or_create_account(
|
22
23
|
email: email, username: username, password: password,
|
@@ -28,6 +29,7 @@ module OpenStax
|
|
28
29
|
struct = OpenStruct.new
|
29
30
|
Api::V1::UnclaimedAccountRepresenter.new(struct).from_json(response.body)
|
30
31
|
id = struct.id
|
32
|
+
uuid = struct.uuid
|
31
33
|
end
|
32
34
|
|
33
35
|
account = Account.find_or_initialize_by(openstax_uid: id)
|
@@ -43,6 +45,8 @@ module OpenStax
|
|
43
45
|
account.title = title
|
44
46
|
account.salesforce_contact_id = salesforce_contact_id
|
45
47
|
account.faculty_status = faculty_status || :no_faculty_info
|
48
|
+
account.role = role || :unknown_role
|
49
|
+
account.uuid = uuid
|
46
50
|
account.save!
|
47
51
|
end
|
48
52
|
|
@@ -9,9 +9,10 @@
|
|
9
9
|
method: :post,
|
10
10
|
html: {class: 'form-inline'} do |f| %>
|
11
11
|
|
12
|
-
|
12
|
+
|
13
13
|
<div class="form-group">
|
14
|
-
<%= f.text_field :username %>
|
14
|
+
<%= f.text_field :username, placeholder: "Username" %>
|
15
|
+
<%= f.select :role, OpenStax::Accounts::Account.roles.keys.map{|rr| [rr, rr]} %>
|
15
16
|
<%= f.submit 'Create', class: 'btn btn-primary' %>
|
16
17
|
</div>
|
17
18
|
|
@@ -5,14 +5,12 @@ http_interactions:
|
|
5
5
|
uri: http://localhost:2999/oauth/token
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: grant_type=client_credentials
|
8
|
+
string: client_id=6f3dbfdbb87bf28db1c8279f44c39ea3c3a702ae4303ebcb5a5d8067dc040f85&client_secret=a439ff2377713b3372f8044062f23ad1eb515237e1711cbe6f442c1bea935373&grant_type=client_credentials
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
11
|
- Faraday v0.9.2
|
12
12
|
Content-Type:
|
13
13
|
- application/x-www-form-urlencoded
|
14
|
-
Authorization:
|
15
|
-
- Basic c2VjcmV0OnNlY3JldA==
|
16
14
|
Accept-Encoding:
|
17
15
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
16
|
Accept:
|
@@ -22,6 +20,12 @@ http_interactions:
|
|
22
20
|
code: 200
|
23
21
|
message: OK
|
24
22
|
headers:
|
23
|
+
X-Frame-Options:
|
24
|
+
- SAMEORIGIN
|
25
|
+
X-Xss-Protection:
|
26
|
+
- 1; mode=block
|
27
|
+
X-Content-Type-Options:
|
28
|
+
- nosniff
|
25
29
|
Cache-Control:
|
26
30
|
- no-store
|
27
31
|
Pragma:
|
@@ -30,38 +34,36 @@ http_interactions:
|
|
30
34
|
- application/json; charset=utf-8
|
31
35
|
P3p:
|
32
36
|
- CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
|
33
|
-
X-Ua-Compatible:
|
34
|
-
- IE=Edge
|
35
37
|
Etag:
|
36
|
-
-
|
38
|
+
- W/"da2f9b92fc82c5fa07f64029a71cff95"
|
37
39
|
X-Request-Id:
|
38
|
-
-
|
40
|
+
- 26a0a272-9fcf-42c9-a702-357b46a5c070
|
39
41
|
X-Runtime:
|
40
|
-
- '0.
|
42
|
+
- '0.030377'
|
41
43
|
Connection:
|
42
44
|
- close
|
43
45
|
Server:
|
44
46
|
- thin
|
45
47
|
body:
|
46
48
|
encoding: UTF-8
|
47
|
-
string: '{"access_token":"
|
49
|
+
string: '{"access_token":"c31fe09157c9801c88356a972d0e0c95aa13081cea77ae45f098b5dc7f614642","token_type":"bearer","created_at":1497844427}'
|
48
50
|
http_version:
|
49
|
-
recorded_at:
|
51
|
+
recorded_at: Mon, 19 Jun 2017 03:53:47 GMT
|
50
52
|
- request:
|
51
53
|
method: post
|
52
54
|
uri: http://localhost:2999/api/user/find-or-create
|
53
55
|
body:
|
54
56
|
encoding: UTF-8
|
55
|
-
string: '{"email":"alice@example.com","username":null,"password":null,"first_name":null,"last_name":null,"full_name":null}'
|
57
|
+
string: '{"email":"alice@example.com","username":null,"password":null,"first_name":null,"last_name":null,"full_name":null,"salesforce_contact_id":null,"faculty_status":null,"role":null}'
|
56
58
|
headers:
|
57
59
|
User-Agent:
|
58
60
|
- Faraday v0.9.2
|
59
61
|
Accept:
|
60
62
|
- application/vnd.accounts.openstax.v1
|
61
|
-
Authorization:
|
62
|
-
- Bearer 62eff19592e9e0cfdf08b43d4829d47ad0d321f78ad6e81b37199db94c3d5531
|
63
63
|
Content-Type:
|
64
|
-
- application/
|
64
|
+
- application/json
|
65
|
+
Authorization:
|
66
|
+
- Bearer c31fe09157c9801c88356a972d0e0c95aa13081cea77ae45f098b5dc7f614642
|
65
67
|
Accept-Encoding:
|
66
68
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
67
69
|
response:
|
@@ -69,42 +71,46 @@ http_interactions:
|
|
69
71
|
code: 201
|
70
72
|
message: Created
|
71
73
|
headers:
|
74
|
+
X-Frame-Options:
|
75
|
+
- SAMEORIGIN
|
76
|
+
X-Xss-Protection:
|
77
|
+
- 1; mode=block
|
78
|
+
X-Content-Type-Options:
|
79
|
+
- nosniff
|
80
|
+
Date:
|
81
|
+
- Mon, 19 Jun 2017 03:53:47 GMT
|
72
82
|
Content-Type:
|
73
83
|
- application/json; charset=utf-8
|
74
84
|
P3p:
|
75
85
|
- CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
|
76
|
-
X-Ua-Compatible:
|
77
|
-
- IE=Edge
|
78
86
|
Etag:
|
79
|
-
-
|
87
|
+
- W/"c61c434670d5436a6af8a75c120f5bdf"
|
80
88
|
Cache-Control:
|
81
89
|
- max-age=0, private, must-revalidate
|
82
90
|
X-Request-Id:
|
83
|
-
-
|
91
|
+
- 4d8fb993-d7ef-4820-9248-8c830caf1b78
|
84
92
|
X-Runtime:
|
85
|
-
- '0.
|
93
|
+
- '0.227730'
|
86
94
|
Connection:
|
87
95
|
- close
|
88
96
|
Server:
|
89
97
|
- thin
|
90
98
|
body:
|
91
99
|
encoding: UTF-8
|
92
|
-
string: '{"id":
|
100
|
+
string: '{"id":18,"uuid":"8c5c819f-d9d9-46e7-98b9-d737fc0f13fe"}'
|
93
101
|
http_version:
|
94
|
-
recorded_at:
|
102
|
+
recorded_at: Mon, 19 Jun 2017 03:53:47 GMT
|
95
103
|
- request:
|
96
104
|
method: post
|
97
105
|
uri: http://localhost:2999/oauth/token
|
98
106
|
body:
|
99
107
|
encoding: UTF-8
|
100
|
-
string: grant_type=client_credentials
|
108
|
+
string: client_id=6f3dbfdbb87bf28db1c8279f44c39ea3c3a702ae4303ebcb5a5d8067dc040f85&client_secret=a439ff2377713b3372f8044062f23ad1eb515237e1711cbe6f442c1bea935373&grant_type=client_credentials
|
101
109
|
headers:
|
102
110
|
User-Agent:
|
103
111
|
- Faraday v0.9.2
|
104
112
|
Content-Type:
|
105
113
|
- application/x-www-form-urlencoded
|
106
|
-
Authorization:
|
107
|
-
- Basic c2VjcmV0OnNlY3JldA==
|
108
114
|
Accept-Encoding:
|
109
115
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
110
116
|
Accept:
|
@@ -114,6 +120,12 @@ http_interactions:
|
|
114
120
|
code: 200
|
115
121
|
message: OK
|
116
122
|
headers:
|
123
|
+
X-Frame-Options:
|
124
|
+
- SAMEORIGIN
|
125
|
+
X-Xss-Protection:
|
126
|
+
- 1; mode=block
|
127
|
+
X-Content-Type-Options:
|
128
|
+
- nosniff
|
117
129
|
Cache-Control:
|
118
130
|
- no-store
|
119
131
|
Pragma:
|
@@ -122,38 +134,36 @@ http_interactions:
|
|
122
134
|
- application/json; charset=utf-8
|
123
135
|
P3p:
|
124
136
|
- CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
|
125
|
-
X-Ua-Compatible:
|
126
|
-
- IE=Edge
|
127
137
|
Etag:
|
128
|
-
-
|
138
|
+
- W/"c7a634c41cb04b393e0cd348d63efec1"
|
129
139
|
X-Request-Id:
|
130
|
-
-
|
140
|
+
- b977409f-0914-4eac-832e-3d406140ef24
|
131
141
|
X-Runtime:
|
132
|
-
- '0.
|
142
|
+
- '0.023528'
|
133
143
|
Connection:
|
134
144
|
- close
|
135
145
|
Server:
|
136
146
|
- thin
|
137
147
|
body:
|
138
148
|
encoding: UTF-8
|
139
|
-
string: '{"access_token":"
|
149
|
+
string: '{"access_token":"1c4df98e8f1b07b4dd33aa81150262c829999aaf0564721c423f01c263c2114f","token_type":"bearer","created_at":1497844427}'
|
140
150
|
http_version:
|
141
|
-
recorded_at:
|
151
|
+
recorded_at: Mon, 19 Jun 2017 03:53:47 GMT
|
142
152
|
- request:
|
143
153
|
method: post
|
144
154
|
uri: http://localhost:2999/api/user/find-or-create
|
145
155
|
body:
|
146
156
|
encoding: UTF-8
|
147
|
-
string: '{"email":null,"username":"alice","password":null,"first_name":null,"last_name":null,"full_name":null}'
|
157
|
+
string: '{"email":null,"username":"alice","password":null,"first_name":null,"last_name":null,"full_name":null,"salesforce_contact_id":null,"faculty_status":null,"role":null}'
|
148
158
|
headers:
|
149
159
|
User-Agent:
|
150
160
|
- Faraday v0.9.2
|
151
161
|
Accept:
|
152
162
|
- application/vnd.accounts.openstax.v1
|
153
|
-
Authorization:
|
154
|
-
- Bearer 8775df1803c483f2c200833d73be5a6a47ee5734c13954b608a61c6a32b77a87
|
155
163
|
Content-Type:
|
156
|
-
- application/
|
164
|
+
- application/json
|
165
|
+
Authorization:
|
166
|
+
- Bearer 1c4df98e8f1b07b4dd33aa81150262c829999aaf0564721c423f01c263c2114f
|
157
167
|
Accept-Encoding:
|
158
168
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
159
169
|
response:
|
@@ -161,42 +171,46 @@ http_interactions:
|
|
161
171
|
code: 201
|
162
172
|
message: Created
|
163
173
|
headers:
|
174
|
+
X-Frame-Options:
|
175
|
+
- SAMEORIGIN
|
176
|
+
X-Xss-Protection:
|
177
|
+
- 1; mode=block
|
178
|
+
X-Content-Type-Options:
|
179
|
+
- nosniff
|
180
|
+
Date:
|
181
|
+
- Mon, 19 Jun 2017 03:53:47 GMT
|
164
182
|
Content-Type:
|
165
183
|
- application/json; charset=utf-8
|
166
184
|
P3p:
|
167
185
|
- CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
|
168
|
-
X-Ua-Compatible:
|
169
|
-
- IE=Edge
|
170
186
|
Etag:
|
171
|
-
-
|
187
|
+
- W/"a6c213351d9df66ee31997f7ed447fbc"
|
172
188
|
Cache-Control:
|
173
189
|
- max-age=0, private, must-revalidate
|
174
190
|
X-Request-Id:
|
175
|
-
-
|
191
|
+
- ee7c0cba-d530-4a21-b94c-5adf7efb994a
|
176
192
|
X-Runtime:
|
177
|
-
- '0.
|
193
|
+
- '0.067316'
|
178
194
|
Connection:
|
179
195
|
- close
|
180
196
|
Server:
|
181
197
|
- thin
|
182
198
|
body:
|
183
199
|
encoding: UTF-8
|
184
|
-
string: '{"id":
|
200
|
+
string: '{"id":19,"uuid":"c1ebaa86-b8ef-4100-9213-a16ca741d47f"}'
|
185
201
|
http_version:
|
186
|
-
recorded_at:
|
202
|
+
recorded_at: Mon, 19 Jun 2017 03:53:47 GMT
|
187
203
|
- request:
|
188
204
|
method: post
|
189
205
|
uri: http://localhost:2999/oauth/token
|
190
206
|
body:
|
191
207
|
encoding: UTF-8
|
192
|
-
string: grant_type=client_credentials
|
208
|
+
string: client_id=6f3dbfdbb87bf28db1c8279f44c39ea3c3a702ae4303ebcb5a5d8067dc040f85&client_secret=a439ff2377713b3372f8044062f23ad1eb515237e1711cbe6f442c1bea935373&grant_type=client_credentials
|
193
209
|
headers:
|
194
210
|
User-Agent:
|
195
211
|
- Faraday v0.9.2
|
196
212
|
Content-Type:
|
197
213
|
- application/x-www-form-urlencoded
|
198
|
-
Authorization:
|
199
|
-
- Basic c2VjcmV0OnNlY3JldA==
|
200
214
|
Accept-Encoding:
|
201
215
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
202
216
|
Accept:
|
@@ -206,6 +220,12 @@ http_interactions:
|
|
206
220
|
code: 200
|
207
221
|
message: OK
|
208
222
|
headers:
|
223
|
+
X-Frame-Options:
|
224
|
+
- SAMEORIGIN
|
225
|
+
X-Xss-Protection:
|
226
|
+
- 1; mode=block
|
227
|
+
X-Content-Type-Options:
|
228
|
+
- nosniff
|
209
229
|
Cache-Control:
|
210
230
|
- no-store
|
211
231
|
Pragma:
|
@@ -214,38 +234,36 @@ http_interactions:
|
|
214
234
|
- application/json; charset=utf-8
|
215
235
|
P3p:
|
216
236
|
- CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
|
217
|
-
X-Ua-Compatible:
|
218
|
-
- IE=Edge
|
219
237
|
Etag:
|
220
|
-
-
|
238
|
+
- W/"a0d885d8947b3be5da25673a937640fc"
|
221
239
|
X-Request-Id:
|
222
|
-
-
|
240
|
+
- 21711558-b1df-4a12-b141-1e0a073f71db
|
223
241
|
X-Runtime:
|
224
|
-
- '0.
|
242
|
+
- '0.022856'
|
225
243
|
Connection:
|
226
244
|
- close
|
227
245
|
Server:
|
228
246
|
- thin
|
229
247
|
body:
|
230
248
|
encoding: UTF-8
|
231
|
-
string: '{"access_token":"
|
249
|
+
string: '{"access_token":"21bb7c60df067e7354ec7e3b2e83d2d39831aece5938d20e8e68e6ea52ab59ff","token_type":"bearer","created_at":1497844427}'
|
232
250
|
http_version:
|
233
|
-
recorded_at:
|
251
|
+
recorded_at: Mon, 19 Jun 2017 03:53:47 GMT
|
234
252
|
- request:
|
235
253
|
method: post
|
236
254
|
uri: http://localhost:2999/api/user/find-or-create
|
237
255
|
body:
|
238
256
|
encoding: UTF-8
|
239
|
-
string: '{"email":null,"username":"alice2","password":"abcdefghijklmnop","first_name":null,"last_name":null,"full_name":null}'
|
257
|
+
string: '{"email":null,"username":"alice2","password":"abcdefghijklmnop","first_name":null,"last_name":null,"full_name":null,"salesforce_contact_id":null,"faculty_status":null,"role":null}'
|
240
258
|
headers:
|
241
259
|
User-Agent:
|
242
260
|
- Faraday v0.9.2
|
243
261
|
Accept:
|
244
262
|
- application/vnd.accounts.openstax.v1
|
245
|
-
Authorization:
|
246
|
-
- Bearer b7c5ce6a934afb2274976c59a0be9f7302b65a013b213ca43068f257fb6e025b
|
247
263
|
Content-Type:
|
248
|
-
- application/
|
264
|
+
- application/json
|
265
|
+
Authorization:
|
266
|
+
- Bearer 21bb7c60df067e7354ec7e3b2e83d2d39831aece5938d20e8e68e6ea52ab59ff
|
249
267
|
Accept-Encoding:
|
250
268
|
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
251
269
|
response:
|
@@ -253,27 +271,33 @@ http_interactions:
|
|
253
271
|
code: 201
|
254
272
|
message: Created
|
255
273
|
headers:
|
274
|
+
X-Frame-Options:
|
275
|
+
- SAMEORIGIN
|
276
|
+
X-Xss-Protection:
|
277
|
+
- 1; mode=block
|
278
|
+
X-Content-Type-Options:
|
279
|
+
- nosniff
|
280
|
+
Date:
|
281
|
+
- Mon, 19 Jun 2017 03:53:48 GMT
|
256
282
|
Content-Type:
|
257
283
|
- application/json; charset=utf-8
|
258
284
|
P3p:
|
259
285
|
- CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
|
260
|
-
X-Ua-Compatible:
|
261
|
-
- IE=Edge
|
262
286
|
Etag:
|
263
|
-
-
|
287
|
+
- W/"1574b45433f3e6117795d9e71a8a7fc9"
|
264
288
|
Cache-Control:
|
265
289
|
- max-age=0, private, must-revalidate
|
266
290
|
X-Request-Id:
|
267
|
-
-
|
291
|
+
- 818cfe0a-9264-43c8-a73f-48cfbea35672
|
268
292
|
X-Runtime:
|
269
|
-
- '0.
|
293
|
+
- '0.142613'
|
270
294
|
Connection:
|
271
295
|
- close
|
272
296
|
Server:
|
273
297
|
- thin
|
274
298
|
body:
|
275
299
|
encoding: UTF-8
|
276
|
-
string: '{"id":
|
300
|
+
string: '{"id":20,"uuid":"76c36a75-5b5a-4dbd-8800-5c1916c6f1f2"}'
|
277
301
|
http_version:
|
278
|
-
recorded_at:
|
279
|
-
recorded_with: VCR 3.0.
|
302
|
+
recorded_at: Mon, 19 Jun 2017 03:53:48 GMT
|
303
|
+
recorded_with: VCR 3.0.3
|