openstax_accounts 7.5.0 → 7.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|