rodauth 1.2.0 → 1.3.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 +5 -1
- data/README.rdoc +18 -15
- data/doc/login_password_requirements_base.rdoc +3 -0
- data/doc/release_notes/1.3.0.txt +21 -0
- data/lib/rodauth/features/login_password_requirements_base.rb +15 -3
- data/lib/rodauth/version.rb +1 -1
- data/spec/change_login_spec.rb +7 -0
- data/spec/migrate/001_tables.rb +12 -12
- data/spec/migrate_password/001_tables.rb +3 -3
- data/spec/migrate_travis/001_tables.rb +15 -15
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ee1b5d6f6b049a4fcd965ce0de9d2c15ce159e5
|
4
|
+
data.tar.gz: 14afd3681ed969ae8eb3edf3f35f66667df22d27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9de71675de5bf39eafd398479d4917bfe342e619f21c9fa3d7c26223c00591541ac8dc22f58358aa579dc02515e1648816153d4c2f5dc6098cbda208c774ae0
|
7
|
+
data.tar.gz: fd038a8458ac8a88f3ca6bec26c4642a10eabf130ba2e14bbefbbc45e5f2136e4edf59452ff8d6deb43ae08ff9e9f05f09ad75a4a73bb6500a88e82bfd0526eb
|
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
@@ -227,6 +227,9 @@ or columns related to features that you don't need.
|
|
227
227
|
First migration. On PostgreSQL, this should be run with the +app+ account,
|
228
228
|
on MySQL and Microsoft SQL Server this should be run with the +ph+ account.
|
229
229
|
|
230
|
+
Note that these migrations require Sequel 4.35.0+. If you are using older
|
231
|
+
versions of Sequel, switch the :Bignum symbols to Bignum constants.
|
232
|
+
|
230
233
|
Sequel.migration do
|
231
234
|
up do
|
232
235
|
extension :date_arithmetic
|
@@ -240,7 +243,7 @@ on MySQL and Microsoft SQL Server this should be run with the +ph+ account.
|
|
240
243
|
|
241
244
|
db = self
|
242
245
|
create_table(:accounts) do
|
243
|
-
primary_key :id, :type
|
246
|
+
primary_key :id, :type=>:Bignum
|
244
247
|
foreign_key :status_id, :account_statuses, :null=>false, :default=>1
|
245
248
|
if db.database_type == :postgres
|
246
249
|
citext :email, :null=>false
|
@@ -262,45 +265,45 @@ on MySQL and Microsoft SQL Server this should be run with the +ph+ account.
|
|
262
265
|
|
263
266
|
# Used by the password reset feature
|
264
267
|
create_table(:account_password_reset_keys) do
|
265
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
268
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
266
269
|
String :key, :null=>false
|
267
270
|
DateTime :deadline, deadline_opts[1]
|
268
271
|
end
|
269
272
|
|
270
273
|
# Used by the account verification feature
|
271
274
|
create_table(:account_verification_keys) do
|
272
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
275
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
273
276
|
String :key, :null=>false
|
274
277
|
DateTime :requested_at, :null=>false, :default=>Sequel::CURRENT_TIMESTAMP
|
275
278
|
end
|
276
279
|
|
277
280
|
# Used by the remember me feature
|
278
281
|
create_table(:account_remember_keys) do
|
279
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
282
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
280
283
|
String :key, :null=>false
|
281
284
|
DateTime :deadline, deadline_opts[14]
|
282
285
|
end
|
283
286
|
|
284
287
|
# Used by the lockout feature
|
285
288
|
create_table(:account_login_failures) do
|
286
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
289
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
287
290
|
Integer :number, :null=>false, :default=>1
|
288
291
|
end
|
289
292
|
create_table(:account_lockouts) do
|
290
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
293
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
291
294
|
String :key, :null=>false
|
292
295
|
DateTime :deadline, deadline_opts[1]
|
293
296
|
end
|
294
297
|
|
295
298
|
# Used by the password expiration feature
|
296
299
|
create_table(:account_password_change_times) do
|
297
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
300
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
298
301
|
DateTime :changed_at, :null=>false, :default=>Sequel::CURRENT_TIMESTAMP
|
299
302
|
end
|
300
303
|
|
301
304
|
# Used by the account expiration feature
|
302
305
|
create_table(:account_activity_times) do
|
303
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
306
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
304
307
|
DateTime :last_activity_at, :null=>false
|
305
308
|
DateTime :last_login_at, :null=>false
|
306
309
|
DateTime :expired_at
|
@@ -308,13 +311,13 @@ on MySQL and Microsoft SQL Server this should be run with the +ph+ account.
|
|
308
311
|
|
309
312
|
# Used by the single session feature
|
310
313
|
create_table(:account_session_keys) do
|
311
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
314
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
312
315
|
String :key, :null=>false
|
313
316
|
end
|
314
317
|
|
315
318
|
# Used by the otp feature
|
316
319
|
create_table(:account_otp_keys) do
|
317
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
320
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
318
321
|
String :key, :null=>false
|
319
322
|
Integer :num_failures, :null=>false, :default=>0
|
320
323
|
Time :last_use, :null=>false, :default=>Sequel::CURRENT_TIMESTAMP
|
@@ -322,14 +325,14 @@ on MySQL and Microsoft SQL Server this should be run with the +ph+ account.
|
|
322
325
|
|
323
326
|
# Used by the recovery codes feature
|
324
327
|
create_table(:account_recovery_codes) do
|
325
|
-
foreign_key :id, :accounts, :type
|
328
|
+
foreign_key :id, :accounts, :type=>:Bignum
|
326
329
|
String :code
|
327
330
|
primary_key [:id, :code]
|
328
331
|
end
|
329
332
|
|
330
333
|
# Used by the sms codes feature
|
331
334
|
create_table(:account_sms_codes) do
|
332
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
335
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
333
336
|
String :phone_number, :null=>false
|
334
337
|
Integer :num_failures
|
335
338
|
String :code
|
@@ -386,7 +389,7 @@ Second migration, run using the +ph+ account:
|
|
386
389
|
Sequel.migration do
|
387
390
|
up do
|
388
391
|
create_table(:account_password_hashes) do
|
389
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
392
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
390
393
|
String :password_hash, :null=>false
|
391
394
|
end
|
392
395
|
Rodauth.create_database_authentication_functions(self)
|
@@ -416,8 +419,8 @@ Second migration, run using the +ph+ account:
|
|
416
419
|
|
417
420
|
# Used by the disallow_password_reuse feature
|
418
421
|
create_table(:account_previous_password_hashes) do
|
419
|
-
primary_key :id, :type
|
420
|
-
foreign_key :account_id, :accounts, :type
|
422
|
+
primary_key :id, :type=>:Bignum
|
423
|
+
foreign_key :account_id, :accounts, :type=>:Bignum
|
421
424
|
String :password_hash, :null=>false
|
422
425
|
end
|
423
426
|
Rodauth.create_database_previous_password_check_functions(self)
|
@@ -10,7 +10,10 @@ login_confirm_param :: The parameter name to use for login confirmations.
|
|
10
10
|
login_does_not_meet_requirements_message :: The error message to display when
|
11
11
|
the login does not meet the
|
12
12
|
requirements you have set.
|
13
|
+
login_maximum_length :: The maximum length for logins, 255 by default.
|
13
14
|
login_minimum_length :: The minimum length for logins, 3 by default.
|
15
|
+
login_too_long_message :: The error message fragment to show if the login is
|
16
|
+
too long.
|
14
17
|
login_too_short_message :: The error message fragment to show if the login is
|
15
18
|
too short.
|
16
19
|
logins_do_not_match_message :: The error message to display when login and
|
@@ -0,0 +1,21 @@
|
|
1
|
+
= New Features
|
2
|
+
|
3
|
+
* A login_maximum_length configuration method has been added. This
|
4
|
+
defaults to 255, and rodauth will now show an error message if a
|
5
|
+
user tries to create a login longer than this setting.
|
6
|
+
|
7
|
+
= Backwards Compatibility
|
8
|
+
|
9
|
+
* Rodauth's documentation and test code now use :Bignum instead of
|
10
|
+
Bignum for database-independent 64-bit integer types. This is
|
11
|
+
because using Bignum is now deprecated in Sequel as it will stop
|
12
|
+
working correctly in ruby 2.4+, due to the unification of Fixnum
|
13
|
+
and Bignum into Integer.
|
14
|
+
|
15
|
+
Rodauth's library code does not use either :Bignum or Bignum, but if
|
16
|
+
you are starting to use Rodauth and are copying the example
|
17
|
+
migration from Rodauth's documentation, or you are running the
|
18
|
+
migrations in Rodauth's tests, you now need to use Sequel 4.35.0+.
|
19
|
+
|
20
|
+
* Some files related to the hosting of the demo site on Heroku have
|
21
|
+
been removed from the repository.
|
@@ -4,6 +4,7 @@ module Rodauth
|
|
4
4
|
LoginPasswordRequirementsBase = Feature.define(:login_password_requirements_base) do
|
5
5
|
auth_value_method :login_confirm_param, 'login-confirm'
|
6
6
|
auth_value_method :login_minimum_length, 3
|
7
|
+
auth_value_method :login_maximum_length, 255
|
7
8
|
auth_value_method :logins_do_not_match_message, 'logins do not match'
|
8
9
|
auth_value_method :password_confirm_param, 'password-confirm'
|
9
10
|
auth_value_method :password_minimum_length, 6
|
@@ -16,6 +17,7 @@ module Rodauth
|
|
16
17
|
auth_value_methods(
|
17
18
|
:login_confirm_label,
|
18
19
|
:login_does_not_meet_requirements_message,
|
20
|
+
:login_too_long_message,
|
19
21
|
:login_too_short_message,
|
20
22
|
:password_confirm_label,
|
21
23
|
:password_does_not_meet_requirements_message,
|
@@ -79,14 +81,24 @@ module Rodauth
|
|
79
81
|
"invalid login#{", #{login_requirement_message}" if login_requirement_message}"
|
80
82
|
end
|
81
83
|
|
84
|
+
def login_too_long_message
|
85
|
+
"maximum #{login_maximum_length} characters"
|
86
|
+
end
|
87
|
+
|
82
88
|
def login_too_short_message
|
83
89
|
"minimum #{login_minimum_length} characters"
|
84
90
|
end
|
85
91
|
|
86
92
|
def login_meets_length_requirements?(login)
|
87
|
-
|
88
|
-
|
89
|
-
|
93
|
+
if login_minimum_length > login.length
|
94
|
+
@login_requirement_message = login_too_short_message
|
95
|
+
false
|
96
|
+
elsif login_maximum_length < login.length
|
97
|
+
@login_requirement_message = login_too_long_message
|
98
|
+
false
|
99
|
+
else
|
100
|
+
true
|
101
|
+
end
|
90
102
|
end
|
91
103
|
|
92
104
|
def login_meets_email_requirements?(login)
|
data/lib/rodauth/version.rb
CHANGED
data/spec/change_login_spec.rb
CHANGED
@@ -38,6 +38,13 @@ describe 'Rodauth change_login feature' do
|
|
38
38
|
page.html.must_include("invalid login, minimum 3 characters")
|
39
39
|
page.current_path.must_equal '/change-login'
|
40
40
|
|
41
|
+
fill_in 'Login', :with=>'f'*256
|
42
|
+
fill_in 'Confirm Login', :with=>'f'*256
|
43
|
+
click_button 'Change Login'
|
44
|
+
page.find('#error_flash').text.must_equal "There was an error changing your login"
|
45
|
+
page.html.must_include("invalid login, maximum 255 characters")
|
46
|
+
page.current_path.must_equal '/change-login'
|
47
|
+
|
41
48
|
fill_in 'Login', :with=>'foo@example.com'
|
42
49
|
fill_in 'Confirm Login', :with=>'foo2@example.com'
|
43
50
|
click_button 'Change Login'
|
data/spec/migrate/001_tables.rb
CHANGED
@@ -11,7 +11,7 @@ Sequel.migration do
|
|
11
11
|
|
12
12
|
db = self
|
13
13
|
create_table(:accounts) do
|
14
|
-
primary_key :id, :type
|
14
|
+
primary_key :id, :type=>:Bignum
|
15
15
|
foreign_key :status_id, :account_statuses, :null=>false, :default=>1
|
16
16
|
if db.database_type == :postgres
|
17
17
|
citext :email, :null=>false
|
@@ -33,45 +33,45 @@ Sequel.migration do
|
|
33
33
|
|
34
34
|
# Used by the password reset feature
|
35
35
|
create_table(:account_password_reset_keys) do
|
36
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
36
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
37
37
|
String :key, :null=>false
|
38
38
|
DateTime :deadline, deadline_opts[1]
|
39
39
|
end
|
40
40
|
|
41
41
|
# Used by the account verification feature
|
42
42
|
create_table(:account_verification_keys) do
|
43
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
43
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
44
44
|
String :key, :null=>false
|
45
45
|
DateTime :requested_at, :null=>false, :default=>Sequel::CURRENT_TIMESTAMP
|
46
46
|
end
|
47
47
|
|
48
48
|
# Used by the remember me feature
|
49
49
|
create_table(:account_remember_keys) do
|
50
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
50
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
51
51
|
String :key, :null=>false
|
52
52
|
DateTime :deadline, deadline_opts[14]
|
53
53
|
end
|
54
54
|
|
55
55
|
# Used by the lockout feature
|
56
56
|
create_table(:account_login_failures) do
|
57
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
57
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
58
58
|
Integer :number, :null=>false, :default=>1
|
59
59
|
end
|
60
60
|
create_table(:account_lockouts) do
|
61
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
61
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
62
62
|
String :key, :null=>false
|
63
63
|
DateTime :deadline, deadline_opts[1]
|
64
64
|
end
|
65
65
|
|
66
66
|
# Used by the password expiration feature
|
67
67
|
create_table(:account_password_change_times) do
|
68
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
68
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
69
69
|
DateTime :changed_at, :null=>false, :default=>Sequel::CURRENT_TIMESTAMP
|
70
70
|
end
|
71
71
|
|
72
72
|
# Used by the account expiration feature
|
73
73
|
create_table(:account_activity_times) do
|
74
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
74
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
75
75
|
DateTime :last_activity_at, :null=>false
|
76
76
|
DateTime :last_login_at, :null=>false
|
77
77
|
DateTime :expired_at
|
@@ -79,13 +79,13 @@ Sequel.migration do
|
|
79
79
|
|
80
80
|
# Used by the single session feature
|
81
81
|
create_table(:account_session_keys) do
|
82
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
82
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
83
83
|
String :key, :null=>false
|
84
84
|
end
|
85
85
|
|
86
86
|
# Used by the otp feature
|
87
87
|
create_table(:account_otp_keys) do
|
88
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
88
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
89
89
|
String :key, :null=>false
|
90
90
|
Integer :num_failures, :null=>false, :default=>0
|
91
91
|
Time :last_use, :null=>false, :default=>Sequel::CURRENT_TIMESTAMP
|
@@ -93,14 +93,14 @@ Sequel.migration do
|
|
93
93
|
|
94
94
|
# Used by the recovery codes feature
|
95
95
|
create_table(:account_recovery_codes) do
|
96
|
-
foreign_key :id, :accounts, :type
|
96
|
+
foreign_key :id, :accounts, :type=>:Bignum
|
97
97
|
String :code
|
98
98
|
primary_key [:id, :code]
|
99
99
|
end
|
100
100
|
|
101
101
|
# Used by the sms codes feature
|
102
102
|
create_table(:account_sms_codes) do
|
103
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
103
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
104
104
|
String :phone_number, :null=>false
|
105
105
|
Integer :num_failures
|
106
106
|
String :code
|
@@ -3,7 +3,7 @@ require 'rodauth/migrations'
|
|
3
3
|
Sequel.migration do
|
4
4
|
up do
|
5
5
|
create_table(:account_password_hashes) do
|
6
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
6
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
7
7
|
String :password_hash, :null=>false
|
8
8
|
end
|
9
9
|
Rodauth.create_database_authentication_functions(self)
|
@@ -33,8 +33,8 @@ Sequel.migration do
|
|
33
33
|
|
34
34
|
# Used by the disallow_password_reuse feature
|
35
35
|
create_table(:account_previous_password_hashes) do
|
36
|
-
primary_key :id, :type
|
37
|
-
foreign_key :account_id, :accounts, :type
|
36
|
+
primary_key :id, :type=>:Bignum
|
37
|
+
foreign_key :account_id, :accounts, :type=>:Bignum
|
38
38
|
String :password_hash, :null=>false
|
39
39
|
end
|
40
40
|
Rodauth.create_database_previous_password_check_functions(self)
|
@@ -12,7 +12,7 @@ Sequel.migration do
|
|
12
12
|
|
13
13
|
db = self
|
14
14
|
create_table(:accounts) do
|
15
|
-
primary_key :id, :type
|
15
|
+
primary_key :id, :type=>:Bignum
|
16
16
|
foreign_key :status_id, :account_statuses, :null=>false, :default=>1
|
17
17
|
if db.database_type == :postgres
|
18
18
|
citext :email, :null=>false
|
@@ -27,7 +27,7 @@ Sequel.migration do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
create_table(:account_password_hashes) do
|
30
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
30
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
31
31
|
String :password_hash, :null=>false
|
32
32
|
end
|
33
33
|
Rodauth.create_database_authentication_functions(self)
|
@@ -41,65 +41,65 @@ Sequel.migration do
|
|
41
41
|
end
|
42
42
|
|
43
43
|
create_table(:account_password_reset_keys) do
|
44
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
44
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
45
45
|
String :key, :null=>false
|
46
46
|
DateTime :deadline, deadline_opts[1]
|
47
47
|
end
|
48
48
|
|
49
49
|
create_table(:account_verification_keys) do
|
50
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
50
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
51
51
|
String :key, :null=>false
|
52
52
|
DateTime :requested_at, :null=>false, :default=>Sequel::CURRENT_TIMESTAMP
|
53
53
|
end
|
54
54
|
|
55
55
|
create_table(:account_remember_keys) do
|
56
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
56
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
57
57
|
String :key, :null=>false
|
58
58
|
DateTime :deadline, deadline_opts[14]
|
59
59
|
end
|
60
60
|
|
61
61
|
create_table(:account_login_failures) do
|
62
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
62
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
63
63
|
Integer :number, :null=>false, :default=>1
|
64
64
|
end
|
65
65
|
create_table(:account_lockouts) do
|
66
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
66
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
67
67
|
String :key, :null=>false
|
68
68
|
DateTime :deadline, deadline_opts[1]
|
69
69
|
end
|
70
70
|
|
71
71
|
create_table(:account_password_change_times) do
|
72
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
72
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
73
73
|
DateTime :changed_at, :null=>false, :default=>Sequel::CURRENT_TIMESTAMP
|
74
74
|
end
|
75
75
|
|
76
76
|
create_table(:account_activity_times) do
|
77
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
77
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
78
78
|
DateTime :last_activity_at, :null=>false
|
79
79
|
DateTime :last_login_at, :null=>false
|
80
80
|
DateTime :expired_at
|
81
81
|
end
|
82
82
|
|
83
83
|
create_table(:account_session_keys) do
|
84
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
84
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
85
85
|
String :key, :null=>false
|
86
86
|
end
|
87
87
|
|
88
88
|
create_table(:account_otp_keys) do
|
89
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
89
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
90
90
|
String :key, :null=>false
|
91
91
|
Integer :num_failures, :null=>false, :default=>0
|
92
92
|
Time :last_use, :null=>false, :default=>Sequel::CURRENT_TIMESTAMP
|
93
93
|
end
|
94
94
|
|
95
95
|
create_table(:account_recovery_codes) do
|
96
|
-
foreign_key :id, :accounts, :type
|
96
|
+
foreign_key :id, :accounts, :type=>:Bignum
|
97
97
|
String :code
|
98
98
|
primary_key [:id, :code]
|
99
99
|
end
|
100
100
|
|
101
101
|
create_table(:account_sms_codes) do
|
102
|
-
foreign_key :id, :accounts, :primary_key=>true, :type
|
102
|
+
foreign_key :id, :accounts, :primary_key=>true, :type=>:Bignum
|
103
103
|
String :phone_number, :null=>false
|
104
104
|
Integer :num_failures
|
105
105
|
String :code
|
@@ -107,8 +107,8 @@ Sequel.migration do
|
|
107
107
|
end
|
108
108
|
|
109
109
|
create_table(:account_previous_password_hashes) do
|
110
|
-
primary_key :id, :type
|
111
|
-
foreign_key :account_id, :accounts, :type
|
110
|
+
primary_key :id, :type=>:Bignum
|
111
|
+
foreign_key :account_id, :accounts, :type=>:Bignum
|
112
112
|
String :password_hash, :null=>false
|
113
113
|
end
|
114
114
|
Rodauth.create_database_previous_password_check_functions(self)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rodauth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -227,6 +227,7 @@ extra_rdoc_files:
|
|
227
227
|
- doc/release_notes/1.0.0.txt
|
228
228
|
- doc/release_notes/1.1.0.txt
|
229
229
|
- doc/release_notes/1.2.0.txt
|
230
|
+
- doc/release_notes/1.3.0.txt
|
230
231
|
files:
|
231
232
|
- CHANGELOG
|
232
233
|
- MIT-LICENSE
|
@@ -254,6 +255,7 @@ files:
|
|
254
255
|
- doc/release_notes/1.0.0.txt
|
255
256
|
- doc/release_notes/1.1.0.txt
|
256
257
|
- doc/release_notes/1.2.0.txt
|
258
|
+
- doc/release_notes/1.3.0.txt
|
257
259
|
- doc/remember.rdoc
|
258
260
|
- doc/reset_password.rdoc
|
259
261
|
- doc/session_expiration.rdoc
|
@@ -378,7 +380,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
378
380
|
requirements:
|
379
381
|
- - ">="
|
380
382
|
- !ruby/object:Gem::Version
|
381
|
-
version:
|
383
|
+
version: 1.8.7
|
382
384
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
383
385
|
requirements:
|
384
386
|
- - ">="
|