rodauth 1.22.0 → 1.23.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/CHANGELOG +12 -0
- data/README.rdoc +5 -3
- data/doc/email_base.rdoc +1 -0
- data/doc/release_notes/1.23.0.txt +32 -0
- data/lib/rodauth.rb +5 -2
- data/lib/rodauth/features/base.rb +8 -0
- data/lib/rodauth/features/change_password_notify.rb +1 -1
- data/lib/rodauth/features/create_account.rb +1 -1
- data/lib/rodauth/features/email_auth.rb +3 -4
- data/lib/rodauth/features/email_base.rb +7 -2
- data/lib/rodauth/features/lockout.rb +1 -1
- data/lib/rodauth/features/login.rb +6 -2
- data/lib/rodauth/features/otp.rb +6 -3
- data/lib/rodauth/features/password_expiration.rb +1 -1
- data/lib/rodauth/features/recovery_codes.rb +3 -3
- data/lib/rodauth/features/reset_password.rb +2 -2
- data/lib/rodauth/features/sms_codes.rb +5 -5
- data/lib/rodauth/features/verify_account.rb +2 -2
- data/lib/rodauth/features/verify_login_change.rb +1 -1
- data/lib/rodauth/version.rb +1 -1
- data/templates/email-auth-request-form.str +2 -2
- data/templates/reset-password-request.str +3 -3
- data/templates/unlock-account-request.str +3 -3
- data/templates/verify-account-resend.str +3 -3
- metadata +5 -43
- data/Rakefile +0 -179
- data/spec/account_expiration_spec.rb +0 -225
- data/spec/all.rb +0 -1
- data/spec/change_login_spec.rb +0 -156
- data/spec/change_password_notify_spec.rb +0 -33
- data/spec/change_password_spec.rb +0 -202
- data/spec/close_account_spec.rb +0 -162
- data/spec/confirm_password_spec.rb +0 -70
- data/spec/create_account_spec.rb +0 -127
- data/spec/disallow_common_passwords_spec.rb +0 -93
- data/spec/disallow_password_reuse_spec.rb +0 -179
- data/spec/email_auth_spec.rb +0 -285
- data/spec/http_basic_auth_spec.rb +0 -143
- data/spec/jwt_cors_spec.rb +0 -57
- data/spec/jwt_refresh_spec.rb +0 -256
- data/spec/jwt_spec.rb +0 -235
- data/spec/lockout_spec.rb +0 -250
- data/spec/login_spec.rb +0 -328
- data/spec/migrate/001_tables.rb +0 -184
- data/spec/migrate/002_account_password_hash_column.rb +0 -11
- data/spec/migrate_password/001_tables.rb +0 -73
- data/spec/migrate_travis/001_tables.rb +0 -141
- data/spec/password_complexity_spec.rb +0 -109
- data/spec/password_expiration_spec.rb +0 -244
- data/spec/password_grace_period_spec.rb +0 -93
- data/spec/remember_spec.rb +0 -451
- data/spec/reset_password_spec.rb +0 -229
- data/spec/rodauth_spec.rb +0 -343
- data/spec/session_expiration_spec.rb +0 -58
- data/spec/single_session_spec.rb +0 -127
- data/spec/spec_helper.rb +0 -327
- data/spec/two_factor_spec.rb +0 -1462
- data/spec/update_password_hash_spec.rb +0 -40
- data/spec/verify_account_grace_period_spec.rb +0 -171
- data/spec/verify_account_spec.rb +0 -240
- data/spec/verify_change_login_spec.rb +0 -46
- data/spec/verify_login_change_spec.rb +0 -232
- data/spec/views/layout-other.str +0 -11
- data/spec/views/layout.str +0 -11
- data/spec/views/login.str +0 -21
@@ -1,93 +0,0 @@
|
|
1
|
-
require File.expand_path("spec_helper", File.dirname(__FILE__))
|
2
|
-
|
3
|
-
describe 'Rodauth password grace period feature' do
|
4
|
-
it "should not ask for password again if password was recently entered" do
|
5
|
-
grace = 300
|
6
|
-
rodauth do
|
7
|
-
enable :login, :change_login, :password_grace_period
|
8
|
-
password_grace_period{grace}
|
9
|
-
require_login_confirmation? false
|
10
|
-
end
|
11
|
-
roda do |r|
|
12
|
-
r.rodauth
|
13
|
-
r.root{view :content=>rodauth.logged_in? ? "Logged In" : "Not Logged"}
|
14
|
-
end
|
15
|
-
|
16
|
-
login
|
17
|
-
page.body.must_include "Logged In"
|
18
|
-
|
19
|
-
visit '/change-login'
|
20
|
-
fill_in 'Login', :with=>'foo2@example.com'
|
21
|
-
click_button 'Change Login'
|
22
|
-
page.find('#notice_flash').text.must_equal "Your login has been changed"
|
23
|
-
|
24
|
-
grace = -1
|
25
|
-
visit '/change-login'
|
26
|
-
fill_in 'Login', :with=>'foo3@example.com'
|
27
|
-
fill_in 'Password', :with=>'0123456789'
|
28
|
-
click_button 'Change Login'
|
29
|
-
page.find('#notice_flash').text.must_equal "Your login has been changed"
|
30
|
-
|
31
|
-
grace = 300
|
32
|
-
visit '/change-login'
|
33
|
-
grace = -1
|
34
|
-
fill_in 'Login', :with=>'foo4@example.com'
|
35
|
-
click_button 'Change Login'
|
36
|
-
page.find('#error_flash').text.must_equal "There was an error changing your login"
|
37
|
-
page.html.must_include("invalid password")
|
38
|
-
|
39
|
-
fill_in 'Password', :with=>'0123456789'
|
40
|
-
click_button 'Change Login'
|
41
|
-
page.find('#notice_flash').text.must_equal "Your login has been changed"
|
42
|
-
end
|
43
|
-
|
44
|
-
it "should not ask for password again directly after creating an account" do
|
45
|
-
rodauth do
|
46
|
-
enable :create_account, :change_login, :password_grace_period
|
47
|
-
require_login_confirmation? false
|
48
|
-
end
|
49
|
-
roda do |r|
|
50
|
-
r.rodauth
|
51
|
-
r.root{view :content=>rodauth.logged_in? ? "Logged In" : "Not Logged"}
|
52
|
-
end
|
53
|
-
|
54
|
-
visit '/create-account'
|
55
|
-
fill_in 'Login', :with=>'foo2@example.com'
|
56
|
-
fill_in 'Password', :with=>'apple2'
|
57
|
-
fill_in 'Confirm Password', :with=>'apple2'
|
58
|
-
click_button 'Create Account'
|
59
|
-
|
60
|
-
visit '/change-login'
|
61
|
-
fill_in 'Login', :with=>'foo3@example.com'
|
62
|
-
click_button 'Change Login'
|
63
|
-
page.find('#notice_flash').text.must_equal "Your login has been changed"
|
64
|
-
end
|
65
|
-
|
66
|
-
it "should not ask for password again directly after resetting a password" do
|
67
|
-
rodauth do
|
68
|
-
enable :login, :reset_password, :change_login, :password_grace_period
|
69
|
-
require_login_confirmation? false
|
70
|
-
reset_password_autologin? true
|
71
|
-
end
|
72
|
-
roda do |r|
|
73
|
-
r.rodauth
|
74
|
-
r.root{view :content=>rodauth.logged_in? ? "Logged In" : "Not Logged"}
|
75
|
-
end
|
76
|
-
|
77
|
-
login(:pass=>'01234567')
|
78
|
-
click_button 'Request Password Reset'
|
79
|
-
link = email_link(/(\/reset-password\?key=.+)$/)
|
80
|
-
visit link
|
81
|
-
fill_in 'Password', :with=>'0123456'
|
82
|
-
fill_in 'Confirm Password', :with=>'0123456'
|
83
|
-
click_button 'Reset Password'
|
84
|
-
page.find('#notice_flash').text.must_equal "Your password has been reset"
|
85
|
-
page.current_path.must_equal '/'
|
86
|
-
|
87
|
-
visit '/change-login'
|
88
|
-
fill_in 'Login', :with=>'foo2@example.com'
|
89
|
-
click_button 'Change Login'
|
90
|
-
page.find('#notice_flash').text.must_equal "Your login has been changed"
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
data/spec/remember_spec.rb
DELETED
@@ -1,451 +0,0 @@
|
|
1
|
-
require File.expand_path("spec_helper", File.dirname(__FILE__))
|
2
|
-
|
3
|
-
describe 'Rodauth remember feature' do
|
4
|
-
it "should support login via remember token" do
|
5
|
-
secret = nil
|
6
|
-
raw_before = Time.now - 100000000
|
7
|
-
rodauth do
|
8
|
-
enable :login, :remember
|
9
|
-
hmac_secret{secret}
|
10
|
-
raw_remember_token_deadline{raw_before}
|
11
|
-
end
|
12
|
-
roda do |r|
|
13
|
-
r.rodauth
|
14
|
-
r.get 'load' do
|
15
|
-
rodauth.load_memory
|
16
|
-
r.redirect '/'
|
17
|
-
end
|
18
|
-
r.root do
|
19
|
-
if rodauth.logged_in?
|
20
|
-
if rodauth.logged_in_via_remember_key?
|
21
|
-
view :content=>"Logged In via Remember"
|
22
|
-
else
|
23
|
-
view :content=>"Logged In Normally"
|
24
|
-
end
|
25
|
-
else
|
26
|
-
view :content=>"Not Logged In"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
login
|
32
|
-
page.body.must_include 'Logged In Normally'
|
33
|
-
|
34
|
-
visit '/load'
|
35
|
-
page.body.must_include 'Logged In Normally'
|
36
|
-
|
37
|
-
visit '/remember'
|
38
|
-
click_button 'Change Remember Setting'
|
39
|
-
page.find('#error_flash').text.must_equal "There was an error updating your remember setting"
|
40
|
-
|
41
|
-
choose 'Remember Me'
|
42
|
-
click_button 'Change Remember Setting'
|
43
|
-
page.find('#notice_flash').text.must_equal "Your remember setting has been updated"
|
44
|
-
page.body.must_include 'Logged In Normally'
|
45
|
-
|
46
|
-
remove_cookie('rack.session')
|
47
|
-
visit '/'
|
48
|
-
page.body.must_include 'Not Logged In'
|
49
|
-
|
50
|
-
secret = SecureRandom.random_bytes(32)
|
51
|
-
visit '/load'
|
52
|
-
page.body.must_include 'Not Logged In'
|
53
|
-
|
54
|
-
secret = nil
|
55
|
-
raw_before = Time.now + 100000000
|
56
|
-
login
|
57
|
-
visit '/remember'
|
58
|
-
choose 'Remember Me'
|
59
|
-
click_button 'Change Remember Setting'
|
60
|
-
remove_cookie('rack.session')
|
61
|
-
|
62
|
-
secret = SecureRandom.random_bytes(32)
|
63
|
-
visit '/load'
|
64
|
-
page.body.must_include 'Logged In via Remember'
|
65
|
-
|
66
|
-
key = get_cookie('_remember')
|
67
|
-
visit '/remember'
|
68
|
-
choose 'Forget Me'
|
69
|
-
click_button 'Change Remember Setting'
|
70
|
-
page.body.must_include 'Logged In via Remember'
|
71
|
-
|
72
|
-
remove_cookie('rack.session')
|
73
|
-
visit '/'
|
74
|
-
page.body.must_include 'Not Logged In'
|
75
|
-
|
76
|
-
visit '/load'
|
77
|
-
page.body.must_include 'Not Logged In'
|
78
|
-
|
79
|
-
set_cookie('_remember', key)
|
80
|
-
visit '/load'
|
81
|
-
page.body.must_include 'Logged In via Remember'
|
82
|
-
|
83
|
-
visit '/remember'
|
84
|
-
choose 'Disable Remember Me'
|
85
|
-
click_button 'Change Remember Setting'
|
86
|
-
page.body.must_include 'Logged In via Remember'
|
87
|
-
|
88
|
-
remove_cookie('rack.session')
|
89
|
-
visit '/'
|
90
|
-
page.body.must_include 'Not Logged In'
|
91
|
-
|
92
|
-
set_cookie('_remember', key)
|
93
|
-
visit '/load'
|
94
|
-
page.body.must_include 'Not Logged In'
|
95
|
-
|
96
|
-
login
|
97
|
-
visit '/remember'
|
98
|
-
choose 'Remember Me'
|
99
|
-
click_button 'Change Remember Setting'
|
100
|
-
|
101
|
-
secret = SecureRandom.random_bytes(32)
|
102
|
-
remove_cookie('rack.session')
|
103
|
-
visit '/load'
|
104
|
-
page.body.must_include 'Not Logged In'
|
105
|
-
end
|
106
|
-
|
107
|
-
it "should forget remember token when explicitly logging out" do
|
108
|
-
rodauth do
|
109
|
-
enable :login, :logout, :remember
|
110
|
-
end
|
111
|
-
roda do |r|
|
112
|
-
r.rodauth
|
113
|
-
r.get 'load' do
|
114
|
-
rodauth.load_memory
|
115
|
-
r.redirect '/'
|
116
|
-
end
|
117
|
-
r.root{rodauth.logged_in? ? "Logged In#{session[:remembered]}" : "Not Logged In"}
|
118
|
-
end
|
119
|
-
|
120
|
-
login
|
121
|
-
page.body.must_equal 'Logged In'
|
122
|
-
|
123
|
-
visit '/remember'
|
124
|
-
choose 'Remember Me'
|
125
|
-
click_button 'Change Remember Setting'
|
126
|
-
page.body.must_equal 'Logged In'
|
127
|
-
|
128
|
-
logout
|
129
|
-
|
130
|
-
visit '/'
|
131
|
-
page.body.must_equal 'Not Logged In'
|
132
|
-
|
133
|
-
visit '/load'
|
134
|
-
page.body.must_equal 'Not Logged In'
|
135
|
-
end
|
136
|
-
|
137
|
-
it "should remove cookie if cookie is no longer valid" do
|
138
|
-
rodauth do
|
139
|
-
enable :login, :remember
|
140
|
-
skip_status_checks? false
|
141
|
-
end
|
142
|
-
roda do |r|
|
143
|
-
r.rodauth
|
144
|
-
r.get 'load' do
|
145
|
-
rodauth.load_memory
|
146
|
-
r.redirect '/'
|
147
|
-
end
|
148
|
-
r.root do
|
149
|
-
if rodauth.logged_in?
|
150
|
-
if rodauth.logged_in_via_remember_key?
|
151
|
-
view :content=>"Logged In via Remember"
|
152
|
-
else
|
153
|
-
view :content=>"Logged In Normally"
|
154
|
-
end
|
155
|
-
else
|
156
|
-
view :content=>"Not Logged In"
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
login
|
162
|
-
visit '/remember'
|
163
|
-
choose 'Remember Me'
|
164
|
-
click_button 'Change Remember Setting'
|
165
|
-
page.body.must_include 'Logged In Normally'
|
166
|
-
|
167
|
-
cookie = get_cookie('_remember')
|
168
|
-
remove_cookie('rack.session')
|
169
|
-
|
170
|
-
rk = DB[:account_remember_keys].first
|
171
|
-
DB[:account_remember_keys].update(:key=>rk[:key][0...-1])
|
172
|
-
visit '/load'
|
173
|
-
page.body.must_include 'Not Logged In'
|
174
|
-
get_cookie('_remember').must_equal ""
|
175
|
-
|
176
|
-
DB[:account_remember_keys].delete
|
177
|
-
set_cookie('_remember', cookie)
|
178
|
-
visit '/load'
|
179
|
-
page.body.must_include 'Not Logged In'
|
180
|
-
get_cookie('_remember').must_equal ""
|
181
|
-
|
182
|
-
DB[:account_remember_keys].insert(rk)
|
183
|
-
DB[:accounts].update(:status_id=>3)
|
184
|
-
set_cookie('_remember', cookie)
|
185
|
-
visit '/load'
|
186
|
-
page.body.must_include 'Not Logged In'
|
187
|
-
get_cookie('_remember').must_equal ""
|
188
|
-
DB[:account_remember_keys].must_be :empty?
|
189
|
-
end
|
190
|
-
|
191
|
-
it "should support clearing remembered flag" do
|
192
|
-
rodauth do
|
193
|
-
enable :login, :remember
|
194
|
-
end
|
195
|
-
roda do |r|
|
196
|
-
r.rodauth
|
197
|
-
r.get 'load' do
|
198
|
-
rodauth.load_memory
|
199
|
-
r.redirect '/'
|
200
|
-
end
|
201
|
-
r.root do
|
202
|
-
if rodauth.logged_in?
|
203
|
-
if rodauth.logged_in_via_remember_key?
|
204
|
-
view :content=>"Logged In via Remember"
|
205
|
-
else
|
206
|
-
view :content=>"Logged In Normally"
|
207
|
-
end
|
208
|
-
else
|
209
|
-
view :content=>"Not Logged In"
|
210
|
-
end
|
211
|
-
end
|
212
|
-
end
|
213
|
-
|
214
|
-
login
|
215
|
-
page.body.must_include 'Logged In Normally'
|
216
|
-
|
217
|
-
visit '/remember'
|
218
|
-
choose 'Remember Me'
|
219
|
-
click_button 'Change Remember Setting'
|
220
|
-
page.body.must_include 'Logged In Normally'
|
221
|
-
|
222
|
-
remove_cookie('rack.session')
|
223
|
-
visit '/'
|
224
|
-
page.body.must_include 'Not Logged In'
|
225
|
-
|
226
|
-
visit '/load'
|
227
|
-
page.body.must_include 'Logged In via Remember'
|
228
|
-
|
229
|
-
visit '/confirm-password'
|
230
|
-
fill_in 'Password', :with=>'012345678'
|
231
|
-
click_button 'Confirm Password'
|
232
|
-
page.find('#error_flash').text.must_equal "There was an error confirming your password"
|
233
|
-
page.html.must_include("invalid password")
|
234
|
-
|
235
|
-
fill_in 'Password', :with=>'0123456789'
|
236
|
-
click_button 'Confirm Password'
|
237
|
-
page.find('#notice_flash').text.must_equal "Your password has been confirmed"
|
238
|
-
page.body.must_include 'Logged In Normally'
|
239
|
-
end
|
240
|
-
|
241
|
-
it "should support extending remember token" do
|
242
|
-
rodauth do
|
243
|
-
enable :login, :remember
|
244
|
-
extend_remember_deadline? true
|
245
|
-
remember_period :days=>30
|
246
|
-
end
|
247
|
-
roda do |r|
|
248
|
-
r.rodauth
|
249
|
-
r.get 'load' do
|
250
|
-
rodauth.load_memory
|
251
|
-
r.redirect '/'
|
252
|
-
end
|
253
|
-
r.root{rodauth.logged_in? ? "Logged In#{session[rodauth.remembered_session_key]}" : "Not Logged In"}
|
254
|
-
end
|
255
|
-
|
256
|
-
login
|
257
|
-
|
258
|
-
visit '/remember'
|
259
|
-
choose 'Remember Me'
|
260
|
-
click_button 'Change Remember Setting'
|
261
|
-
deadline = DB[:account_remember_keys].get(:deadline)
|
262
|
-
deadline = Time.parse(deadline) if deadline.is_a?(String)
|
263
|
-
deadline.must_be(:<, Time.now + 15*86400)
|
264
|
-
|
265
|
-
remove_cookie('rack.session')
|
266
|
-
visit '/'
|
267
|
-
page.body.must_equal 'Not Logged In'
|
268
|
-
|
269
|
-
old_expiration = page.driver.browser.rack_mock_session.cookie_jar.instance_variable_get(:@cookies).first.expires
|
270
|
-
visit '/load'
|
271
|
-
page.body.must_equal 'Logged Intrue'
|
272
|
-
new_expiration = page.driver.browser.rack_mock_session.cookie_jar.instance_variable_get(:@cookies).first.expires
|
273
|
-
new_expiration.must_be :>=, old_expiration
|
274
|
-
deadline = DB[:account_remember_keys].get(:deadline)
|
275
|
-
deadline = Time.parse(deadline) if deadline.is_a?(String)
|
276
|
-
deadline.must_be(:>, Time.now + 29*86400)
|
277
|
-
end
|
278
|
-
|
279
|
-
it "should clear remember token when closing account" do
|
280
|
-
rodauth do
|
281
|
-
enable :login, :remember, :close_account
|
282
|
-
end
|
283
|
-
roda do |r|
|
284
|
-
r.rodauth
|
285
|
-
rodauth.load_memory
|
286
|
-
r.root{rodauth.logged_in? ? "Logged In#{session[:remembered]}" : "Not Logged In"}
|
287
|
-
end
|
288
|
-
|
289
|
-
login
|
290
|
-
|
291
|
-
visit '/remember'
|
292
|
-
choose 'Remember Me'
|
293
|
-
click_button 'Change Remember Setting'
|
294
|
-
DB[:account_remember_keys].count.must_equal 1
|
295
|
-
|
296
|
-
visit '/close-account'
|
297
|
-
fill_in 'Password', :with=>'0123456789'
|
298
|
-
click_button 'Close Account'
|
299
|
-
DB[:account_remember_keys].count.must_equal 0
|
300
|
-
end
|
301
|
-
|
302
|
-
it "should not use remember token if the account is not open" do
|
303
|
-
rodauth do
|
304
|
-
enable :login, :remember
|
305
|
-
skip_status_checks? false
|
306
|
-
end
|
307
|
-
roda do |r|
|
308
|
-
r.rodauth
|
309
|
-
r.get 'load' do
|
310
|
-
rodauth.load_memory
|
311
|
-
r.redirect '/'
|
312
|
-
end
|
313
|
-
r.root do
|
314
|
-
if rodauth.logged_in?
|
315
|
-
if rodauth.logged_in_via_remember_key?
|
316
|
-
"Logged In via Remember"
|
317
|
-
else
|
318
|
-
"Logged In Normally"
|
319
|
-
end
|
320
|
-
else
|
321
|
-
"Not Logged In"
|
322
|
-
end
|
323
|
-
end
|
324
|
-
end
|
325
|
-
|
326
|
-
login
|
327
|
-
page.body.must_equal 'Logged In Normally'
|
328
|
-
|
329
|
-
visit '/load'
|
330
|
-
page.body.must_equal 'Logged In Normally'
|
331
|
-
|
332
|
-
visit '/remember'
|
333
|
-
choose 'Remember Me'
|
334
|
-
click_button 'Change Remember Setting'
|
335
|
-
page.body.must_equal 'Logged In Normally'
|
336
|
-
|
337
|
-
remove_cookie('rack.session')
|
338
|
-
visit '/'
|
339
|
-
page.body.must_equal 'Not Logged In'
|
340
|
-
|
341
|
-
DB[:accounts].update(:status_id=>3)
|
342
|
-
|
343
|
-
visit '/load'
|
344
|
-
page.body.must_equal 'Not Logged In'
|
345
|
-
end
|
346
|
-
|
347
|
-
it "should handle uniqueness errors raised when inserting remember token" do
|
348
|
-
rodauth do
|
349
|
-
enable :login, :remember
|
350
|
-
end
|
351
|
-
roda do |r|
|
352
|
-
def rodauth.raised_uniqueness_violation(*) super; true; end
|
353
|
-
r.rodauth
|
354
|
-
r.get 'load' do
|
355
|
-
rodauth.load_memory
|
356
|
-
r.redirect '/'
|
357
|
-
end
|
358
|
-
r.root do
|
359
|
-
if rodauth.logged_in?
|
360
|
-
if rodauth.logged_in_via_remember_key?
|
361
|
-
"Logged In via Remember"
|
362
|
-
else
|
363
|
-
"Logged In Normally"
|
364
|
-
end
|
365
|
-
else
|
366
|
-
"Not Logged In"
|
367
|
-
end
|
368
|
-
end
|
369
|
-
end
|
370
|
-
|
371
|
-
login
|
372
|
-
|
373
|
-
visit '/remember'
|
374
|
-
choose 'Remember Me'
|
375
|
-
click_button 'Change Remember Setting'
|
376
|
-
page.body.must_equal 'Logged In Normally'
|
377
|
-
end
|
378
|
-
|
379
|
-
it "should support login via remember token via jwt" do
|
380
|
-
rodauth do
|
381
|
-
enable :login, :remember
|
382
|
-
end
|
383
|
-
roda(:jwt) do |r|
|
384
|
-
r.rodauth
|
385
|
-
|
386
|
-
r.post 'load' do
|
387
|
-
rodauth.load_memory
|
388
|
-
[4]
|
389
|
-
end
|
390
|
-
|
391
|
-
if rodauth.logged_in?
|
392
|
-
if rodauth.logged_in_via_remember_key?
|
393
|
-
[1]
|
394
|
-
else
|
395
|
-
[2]
|
396
|
-
end
|
397
|
-
else
|
398
|
-
[3]
|
399
|
-
end
|
400
|
-
end
|
401
|
-
|
402
|
-
json_request.must_equal [200, [3]]
|
403
|
-
json_login
|
404
|
-
json_request.must_equal [200, [2]]
|
405
|
-
|
406
|
-
json_request('/load').must_equal [200, [4]]
|
407
|
-
json_request.must_equal [200, [2]]
|
408
|
-
|
409
|
-
res = json_request('/remember', :remember=>'remember')
|
410
|
-
res.must_equal [200, {'success'=>"Your remember setting has been updated"}]
|
411
|
-
|
412
|
-
@authorization = nil
|
413
|
-
json_request.must_equal [200, [3]]
|
414
|
-
json_request('/load').must_equal [200, [4]]
|
415
|
-
json_request.must_equal [200, [1]]
|
416
|
-
|
417
|
-
cookie = @cookie
|
418
|
-
res = json_request('/remember', :remember=>'forget')
|
419
|
-
res.must_equal [200, {'success'=>"Your remember setting has been updated"}]
|
420
|
-
json_request.must_equal [200, [1]]
|
421
|
-
|
422
|
-
@cookie = nil
|
423
|
-
@authorization = nil
|
424
|
-
json_request.must_equal [200, [3]]
|
425
|
-
|
426
|
-
json_request('/load').must_equal [200, [4]]
|
427
|
-
json_request.must_equal [200, [3]]
|
428
|
-
|
429
|
-
@cookie = cookie
|
430
|
-
json_request('/load').must_equal [200, [4]]
|
431
|
-
json_request.must_equal [200, [1]]
|
432
|
-
|
433
|
-
res = json_request('/confirm-password', :password=>'123456')
|
434
|
-
res.must_equal [401, {'error'=>"There was an error confirming your password", "field-error"=>["password", "invalid password"]}]
|
435
|
-
|
436
|
-
res = json_request('/confirm-password', :password=>'0123456789')
|
437
|
-
res.must_equal [200, {'success'=>"Your password has been confirmed"}]
|
438
|
-
json_request.must_equal [200, [2]]
|
439
|
-
|
440
|
-
res = json_request('/remember', :remember=>'disable')
|
441
|
-
res.must_equal [200, {'success'=>"Your remember setting has been updated"}]
|
442
|
-
|
443
|
-
@authorization = nil
|
444
|
-
@cookie = nil
|
445
|
-
json_request.must_equal [200, [3]]
|
446
|
-
|
447
|
-
@cookie = cookie
|
448
|
-
json_request('/load').must_equal [200, [4]]
|
449
|
-
json_request.must_equal [200, [3]]
|
450
|
-
end
|
451
|
-
end
|