devise_token_auth 0.1.43 → 1.2.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.
Files changed (183) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +42 -895
  3. data/Rakefile +11 -4
  4. data/app/controllers/devise_token_auth/application_controller.rb +19 -8
  5. data/app/controllers/devise_token_auth/concerns/resource_finder.rb +26 -12
  6. data/app/controllers/devise_token_auth/concerns/set_user_by_token.rb +106 -85
  7. data/app/controllers/devise_token_auth/confirmations_controller.rb +73 -17
  8. data/app/controllers/devise_token_auth/omniauth_callbacks_controller.rb +95 -51
  9. data/app/controllers/devise_token_auth/passwords_controller.rb +65 -57
  10. data/app/controllers/devise_token_auth/registrations_controller.rb +61 -61
  11. data/app/controllers/devise_token_auth/sessions_controller.rb +22 -18
  12. data/app/controllers/devise_token_auth/token_validations_controller.rb +5 -3
  13. data/app/controllers/devise_token_auth/unlocks_controller.rb +20 -16
  14. data/app/models/devise_token_auth/concerns/active_record_support.rb +14 -0
  15. data/app/models/devise_token_auth/concerns/confirmable_support.rb +28 -0
  16. data/app/models/devise_token_auth/concerns/mongoid_support.rb +19 -0
  17. data/app/models/devise_token_auth/concerns/tokens_serialization.rb +31 -0
  18. data/app/models/devise_token_auth/concerns/user.rb +92 -100
  19. data/app/models/devise_token_auth/concerns/user_omniauth_callbacks.rb +8 -3
  20. data/app/validators/{email_validator.rb → devise_token_auth_email_validator.rb} +5 -3
  21. data/app/views/devise_token_auth/omniauth_external_window.html.erb +1 -1
  22. data/config/locales/da-DK.yml +11 -9
  23. data/config/locales/de.yml +2 -0
  24. data/config/locales/en.yml +10 -0
  25. data/config/locales/es.yml +2 -0
  26. data/config/locales/fr.yml +2 -0
  27. data/config/locales/he.yml +52 -0
  28. data/config/locales/it.yml +2 -0
  29. data/config/locales/ja.yml +4 -2
  30. data/config/locales/ko.yml +51 -0
  31. data/config/locales/nl.yml +2 -0
  32. data/config/locales/pl.yml +6 -3
  33. data/config/locales/pt-BR.yml +2 -0
  34. data/config/locales/pt.yml +6 -3
  35. data/config/locales/ro.yml +2 -0
  36. data/config/locales/ru.yml +2 -0
  37. data/config/locales/sq.yml +2 -0
  38. data/config/locales/sv.yml +52 -0
  39. data/config/locales/uk.yml +2 -0
  40. data/config/locales/vi.yml +2 -0
  41. data/config/locales/zh-CN.yml +2 -0
  42. data/config/locales/zh-HK.yml +2 -0
  43. data/config/locales/zh-TW.yml +2 -0
  44. data/lib/devise_token_auth/blacklist.rb +6 -0
  45. data/lib/devise_token_auth/controllers/helpers.rb +21 -13
  46. data/lib/devise_token_auth/controllers/url_helpers.rb +2 -0
  47. data/lib/devise_token_auth/engine.rb +26 -14
  48. data/lib/devise_token_auth/errors.rb +8 -0
  49. data/lib/devise_token_auth/rails/routes.rb +37 -30
  50. data/lib/devise_token_auth/token_factory.rb +126 -0
  51. data/lib/devise_token_auth/url.rb +11 -4
  52. data/lib/devise_token_auth/version.rb +3 -1
  53. data/lib/devise_token_auth.rb +11 -5
  54. data/lib/generators/devise_token_auth/USAGE +2 -2
  55. data/lib/generators/devise_token_auth/install_generator.rb +36 -105
  56. data/lib/generators/devise_token_auth/install_generator_helpers.rb +98 -0
  57. data/lib/generators/devise_token_auth/install_mongoid_generator.rb +46 -0
  58. data/lib/generators/devise_token_auth/install_views_generator.rb +7 -5
  59. data/lib/generators/devise_token_auth/templates/devise_token_auth.rb +12 -0
  60. data/lib/generators/devise_token_auth/templates/devise_token_auth_create_users.rb.erb +8 -14
  61. data/lib/generators/devise_token_auth/templates/user.rb.erb +9 -0
  62. data/lib/generators/devise_token_auth/templates/user_mongoid.rb.erb +56 -0
  63. data/lib/tasks/devise_token_auth_tasks.rake +2 -0
  64. data/test/controllers/custom/custom_confirmations_controller_test.rb +5 -1
  65. data/test/controllers/custom/custom_omniauth_callbacks_controller_test.rb +4 -0
  66. data/test/controllers/custom/custom_passwords_controller_test.rb +6 -2
  67. data/test/controllers/custom/custom_registrations_controller_test.rb +17 -8
  68. data/test/controllers/custom/custom_sessions_controller_test.rb +7 -5
  69. data/test/controllers/custom/custom_token_validations_controller_test.rb +5 -3
  70. data/test/controllers/demo_group_controller_test.rb +4 -6
  71. data/test/controllers/demo_mang_controller_test.rb +3 -3
  72. data/test/controllers/demo_user_controller_test.rb +53 -25
  73. data/test/controllers/devise_token_auth/confirmations_controller_test.rb +159 -25
  74. data/test/controllers/devise_token_auth/omniauth_callbacks_controller_test.rb +117 -47
  75. data/test/controllers/devise_token_auth/passwords_controller_test.rb +309 -126
  76. data/test/controllers/devise_token_auth/registrations_controller_test.rb +65 -23
  77. data/test/controllers/devise_token_auth/sessions_controller_test.rb +93 -61
  78. data/test/controllers/devise_token_auth/token_validations_controller_test.rb +18 -6
  79. data/test/controllers/devise_token_auth/unlocks_controller_test.rb +24 -5
  80. data/test/controllers/overrides/confirmations_controller_test.rb +6 -2
  81. data/test/controllers/overrides/omniauth_callbacks_controller_test.rb +5 -1
  82. data/test/controllers/overrides/passwords_controller_test.rb +27 -29
  83. data/test/controllers/overrides/registrations_controller_test.rb +33 -27
  84. data/test/controllers/overrides/sessions_controller_test.rb +6 -4
  85. data/test/controllers/overrides/token_validations_controller_test.rb +5 -3
  86. data/test/dummy/app/active_record/confirmable_user.rb +11 -0
  87. data/test/dummy/app/{models → active_record}/lockable_user.rb +2 -0
  88. data/test/dummy/app/{models → active_record}/mang.rb +2 -0
  89. data/test/dummy/app/{models → active_record}/only_email_user.rb +2 -0
  90. data/test/dummy/app/{models → active_record}/scoped_user.rb +4 -2
  91. data/test/dummy/app/{models → active_record}/unconfirmable_user.rb +3 -2
  92. data/test/dummy/app/active_record/unregisterable_user.rb +9 -0
  93. data/test/dummy/app/active_record/user.rb +6 -0
  94. data/test/dummy/app/controllers/application_controller.rb +2 -0
  95. data/test/dummy/app/controllers/auth_origin_controller.rb +2 -0
  96. data/test/dummy/app/controllers/custom/confirmations_controller.rb +2 -2
  97. data/test/dummy/app/controllers/custom/omniauth_callbacks_controller.rb +2 -0
  98. data/test/dummy/app/controllers/custom/passwords_controller.rb +3 -4
  99. data/test/dummy/app/controllers/custom/registrations_controller.rb +3 -3
  100. data/test/dummy/app/controllers/custom/sessions_controller.rb +3 -3
  101. data/test/dummy/app/controllers/custom/token_validations_controller.rb +3 -3
  102. data/test/dummy/app/controllers/demo_group_controller.rb +2 -0
  103. data/test/dummy/app/controllers/demo_mang_controller.rb +2 -0
  104. data/test/dummy/app/controllers/demo_user_controller.rb +2 -0
  105. data/test/dummy/app/controllers/overrides/confirmations_controller.rb +8 -6
  106. data/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +5 -3
  107. data/test/dummy/app/controllers/overrides/passwords_controller.rb +10 -8
  108. data/test/dummy/app/controllers/overrides/registrations_controller.rb +5 -3
  109. data/test/dummy/app/controllers/overrides/sessions_controller.rb +12 -12
  110. data/test/dummy/app/controllers/overrides/token_validations_controller.rb +5 -5
  111. data/test/dummy/app/helpers/application_helper.rb +1029 -1036
  112. data/test/dummy/app/models/{user.rb → concerns/favorite_color.rb} +8 -7
  113. data/test/dummy/app/mongoid/confirmable_user.rb +52 -0
  114. data/test/dummy/app/mongoid/lockable_user.rb +38 -0
  115. data/test/dummy/app/mongoid/mang.rb +46 -0
  116. data/test/dummy/app/mongoid/only_email_user.rb +33 -0
  117. data/test/dummy/app/mongoid/scoped_user.rb +50 -0
  118. data/test/dummy/app/mongoid/unconfirmable_user.rb +44 -0
  119. data/test/dummy/app/mongoid/unregisterable_user.rb +47 -0
  120. data/test/dummy/app/mongoid/user.rb +49 -0
  121. data/test/dummy/app/views/layouts/application.html.erb +0 -2
  122. data/test/dummy/config/application.rb +26 -3
  123. data/test/dummy/config/boot.rb +8 -2
  124. data/test/dummy/config/environment.rb +3 -1
  125. data/test/dummy/config/environments/development.rb +5 -13
  126. data/test/dummy/config/environments/production.rb +2 -16
  127. data/test/dummy/config/environments/test.rb +3 -1
  128. data/test/dummy/config/initializers/backtrace_silencers.rb +2 -0
  129. data/test/dummy/config/initializers/cookies_serializer.rb +3 -1
  130. data/test/dummy/config/initializers/devise.rb +287 -0
  131. data/test/dummy/config/initializers/devise_token_auth.rb +37 -4
  132. data/test/dummy/config/initializers/figaro.rb +3 -1
  133. data/test/dummy/config/initializers/filter_parameter_logging.rb +2 -0
  134. data/test/dummy/config/initializers/inflections.rb +2 -0
  135. data/test/dummy/config/initializers/mime_types.rb +2 -0
  136. data/test/dummy/config/initializers/omniauth.rb +5 -2
  137. data/test/dummy/config/initializers/session_store.rb +2 -0
  138. data/test/dummy/config/initializers/wrap_parameters.rb +2 -0
  139. data/test/dummy/config/routes.rb +14 -29
  140. data/test/dummy/config/spring.rb +2 -0
  141. data/test/dummy/config.ru +5 -3
  142. data/test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb +9 -14
  143. data/test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb +8 -13
  144. data/test/dummy/db/migrate/20140829044006_add_operating_thetan_to_user.rb +2 -0
  145. data/test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb +2 -0
  146. data/test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb +6 -11
  147. data/test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb +8 -13
  148. data/test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb +8 -13
  149. data/test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb +8 -13
  150. data/test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb +8 -13
  151. data/test/dummy/{tmp/generators/db/migrate/20171014052631_devise_token_auth_create_users.rb → db/migrate/20190924101113_devise_token_auth_create_confirmable_users.rb} +8 -14
  152. data/test/dummy/db/schema.rb +11 -71
  153. data/test/dummy/lib/migration_database_helper.rb +15 -1
  154. data/test/dummy/tmp/generators/app/controllers/application_controller.rb +6 -0
  155. data/test/dummy/tmp/generators/app/models/azpire/v1/human_resource/user.rb +56 -0
  156. data/test/dummy/tmp/generators/config/initializers/devise_token_auth.rb +12 -0
  157. data/test/factories/users.rb +41 -0
  158. data/test/lib/devise_token_auth/blacklist_test.rb +19 -0
  159. data/test/lib/devise_token_auth/rails/custom_routes_test.rb +29 -0
  160. data/test/lib/devise_token_auth/rails/routes_test.rb +87 -0
  161. data/test/lib/devise_token_auth/token_factory_test.rb +191 -0
  162. data/test/lib/devise_token_auth/url_test.rb +9 -7
  163. data/test/lib/generators/devise_token_auth/install_generator_test.rb +67 -37
  164. data/test/lib/generators/devise_token_auth/install_generator_with_namespace_test.rb +222 -0
  165. data/test/lib/generators/devise_token_auth/install_views_generator_test.rb +3 -1
  166. data/test/models/concerns/mongoid_support_test.rb +31 -0
  167. data/test/models/concerns/tokens_serialization_test.rb +104 -0
  168. data/test/models/confirmable_user_test.rb +35 -0
  169. data/test/models/only_email_user_test.rb +2 -8
  170. data/test/models/user_test.rb +18 -79
  171. data/test/support/controllers/routes.rb +43 -0
  172. data/test/test_helper.rb +83 -26
  173. metadata +153 -44
  174. data/config/initializers/devise.rb +0 -196
  175. data/lib/generators/devise_token_auth/templates/user.rb +0 -7
  176. data/test/dummy/app/models/evil_user.rb +0 -3
  177. data/test/dummy/app/models/nice_user.rb +0 -7
  178. data/test/dummy/app/models/unregisterable_user.rb +0 -7
  179. data/test/dummy/config/initializers/assets.rb +0 -8
  180. data/test/dummy/db/migrate/20140928231203_devise_token_auth_create_evil_users.rb +0 -64
  181. data/test/dummy/db/migrate/20150409095712_devise_token_auth_create_nice_users.rb +0 -61
  182. data/test/dummy/tmp/generators/app/models/user.rb +0 -11
  183. data/test/integration/navigation_test.rb +0 -10
@@ -1,14 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateOnlyEmailUsers < ActiveRecord::Migration[4.2]
4
6
  def change
5
7
  create_table(:only_email_users) do |t|
6
8
  ## Required
7
- t.string :provider, :null => false
8
- t.string :uid, :null => false, :default => ""
9
+ t.string :provider, null: false
10
+ t.string :uid, null: false, default: ''
9
11
 
10
12
  ## Database authenticatable
11
- t.string :encrypted_password, :null => false, :default => ""
13
+ t.string :encrypted_password, null: false, default: ''
12
14
 
13
15
  ## Recoverable
14
16
  #t.string :reset_password_token
@@ -17,13 +19,6 @@ class DeviseTokenAuthCreateOnlyEmailUsers < ActiveRecord::Migration[4.2]
17
19
  ## Rememberable
18
20
  #t.datetime :remember_created_at
19
21
 
20
- ## Trackable
21
- #t.integer :sign_in_count, :default => 0, :null => false
22
- #t.datetime :current_sign_in_at
23
- #t.datetime :last_sign_in_at
24
- #t.string :current_sign_in_ip
25
- #t.string :last_sign_in_ip
26
-
27
22
  ## Confirmable
28
23
  #t.string :confirmation_token
29
24
  #t.datetime :confirmed_at
@@ -52,7 +47,7 @@ class DeviseTokenAuthCreateOnlyEmailUsers < ActiveRecord::Migration[4.2]
52
47
  end
53
48
 
54
49
  add_index :only_email_users, :email
55
- add_index :only_email_users, [:uid, :provider], :unique => true
50
+ add_index :only_email_users, [:uid, :provider], unique: true
56
51
  #add_index :only_email_users, :reset_password_token, :unique => true
57
52
  # add_index :only_email_users, :confirmation_token, :unique => true
58
53
  # add_index :only_email_users, :unlock_token, :unique => true
@@ -1,30 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateUnregisterableUsers < ActiveRecord::Migration[4.2]
4
6
  def change
5
7
  create_table(:unregisterable_users) do |t|
6
8
  ## Required
7
- t.string :provider, :null => false
8
- t.string :uid, :null => false, :default => ""
9
+ t.string :provider, null: false
10
+ t.string :uid, null: false, default: ''
9
11
 
10
12
  ## Database authenticatable
11
- t.string :encrypted_password, :null => false, :default => ""
13
+ t.string :encrypted_password, null: false, default: ''
12
14
 
13
15
  ## Recoverable
14
16
  t.string :reset_password_token
15
17
  t.datetime :reset_password_sent_at
16
- t.boolean :allow_password_change, :default => false
18
+ t.boolean :allow_password_change, default: false
17
19
 
18
20
  ## Rememberable
19
21
  t.datetime :remember_created_at
20
22
 
21
- ## Trackable
22
- t.integer :sign_in_count, :default => 0, :null => false
23
- t.datetime :current_sign_in_at
24
- t.datetime :last_sign_in_at
25
- t.string :current_sign_in_ip
26
- t.string :last_sign_in_ip
27
-
28
23
  ## Confirmable
29
24
  t.string :confirmation_token
30
25
  t.datetime :confirmed_at
@@ -53,8 +48,8 @@ class DeviseTokenAuthCreateUnregisterableUsers < ActiveRecord::Migration[4.2]
53
48
  end
54
49
 
55
50
  add_index :unregisterable_users, :email
56
- add_index :unregisterable_users, [:uid, :provider], :unique => true
57
- add_index :unregisterable_users, :reset_password_token, :unique => true
51
+ add_index :unregisterable_users, [:uid, :provider], unique: true
52
+ add_index :unregisterable_users, :reset_password_token, unique: true
58
53
  # add_index :unregisterable_users, :confirmation_token, :unique => true
59
54
  # add_index :unregisterable_users, :unlock_token, :unique => true
60
55
  end
@@ -1,30 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateUnconfirmableUsers < ActiveRecord::Migration[4.2]
4
6
  def change
5
7
  create_table(:unconfirmable_users) do |t|
6
8
  ## Required
7
- t.string :provider, :null => false
8
- t.string :uid, :null => false, :default => ""
9
+ t.string :provider, null: false
10
+ t.string :uid, null: false, default: ''
9
11
 
10
12
  ## Database authenticatable
11
- t.string :encrypted_password, :null => false, :default => ""
13
+ t.string :encrypted_password, null: false, default: ''
12
14
 
13
15
  ## Recoverable
14
16
  t.string :reset_password_token
15
17
  t.datetime :reset_password_sent_at
16
- t.boolean :allow_password_change, :default => false
18
+ t.boolean :allow_password_change, default: false
17
19
 
18
20
  ## Rememberable
19
21
  t.datetime :remember_created_at
20
22
 
21
- ## Trackable
22
- t.integer :sign_in_count, :default => 0, :null => false
23
- t.datetime :current_sign_in_at
24
- t.datetime :last_sign_in_at
25
- t.string :current_sign_in_ip
26
- t.string :last_sign_in_ip
27
-
28
23
  ## Confirmable
29
24
  # t.string :confirmation_token
30
25
  # t.datetime :confirmed_at
@@ -53,8 +48,8 @@ class DeviseTokenAuthCreateUnconfirmableUsers < ActiveRecord::Migration[4.2]
53
48
  end
54
49
 
55
50
  add_index :unconfirmable_users, :email
56
- add_index :unconfirmable_users, [:uid, :provider], :unique => true
57
- add_index :unconfirmable_users, :reset_password_token, :unique => true
51
+ add_index :unconfirmable_users, [:uid, :provider], unique: true
52
+ add_index :unconfirmable_users, :reset_password_token, unique: true
58
53
  # add_index :nice_users, :confirmation_token, :unique => true
59
54
  # add_index :nice_users, :unlock_token, :unique => true
60
55
  end
@@ -1,30 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateScopedUsers < ActiveRecord::Migration[4.2]
4
6
  def change
5
7
  create_table(:scoped_users) do |t|
6
8
  ## Required
7
- t.string :provider, :null => false
8
- t.string :uid, :null => false, :default => ""
9
+ t.string :provider, null: false
10
+ t.string :uid, null: false, default: ''
9
11
 
10
12
  ## Database authenticatable
11
- t.string :encrypted_password, :null => false, :default => ""
13
+ t.string :encrypted_password, null: false, default: ''
12
14
 
13
15
  ## Recoverable
14
16
  t.string :reset_password_token
15
17
  t.datetime :reset_password_sent_at
16
- t.boolean :allow_password_change, :default => false
18
+ t.boolean :allow_password_change, default: false
17
19
 
18
20
  ## Rememberable
19
21
  t.datetime :remember_created_at
20
22
 
21
- ## Trackable
22
- t.integer :sign_in_count, :default => 0, :null => false
23
- t.datetime :current_sign_in_at
24
- t.datetime :last_sign_in_at
25
- t.string :current_sign_in_ip
26
- t.string :last_sign_in_ip
27
-
28
23
  ## Confirmable
29
24
  t.string :confirmation_token
30
25
  t.datetime :confirmed_at
@@ -53,8 +48,8 @@ class DeviseTokenAuthCreateScopedUsers < ActiveRecord::Migration[4.2]
53
48
  end
54
49
 
55
50
  add_index :scoped_users, :email
56
- add_index :scoped_users, [:uid, :provider], :unique => true
57
- add_index :scoped_users, :reset_password_token, :unique => true
51
+ add_index :scoped_users, [:uid, :provider], unique: true
52
+ add_index :scoped_users, :reset_password_token, unique: true
58
53
  # add_index :scoped_users, :confirmation_token, :unique => true
59
54
  # add_index :scoped_users, :unlock_token, :unique => true
60
55
  end
@@ -1,14 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateLockableUsers < ActiveRecord::Migration[4.2]
4
6
  def change
5
7
  create_table(:lockable_users) do |t|
6
8
  ## Required
7
- t.string :provider, :null => false
8
- t.string :uid, :null => false, :default => ""
9
+ t.string :provider, null: false
10
+ t.string :uid, null: false, default: ''
9
11
 
10
12
  ## Database authenticatable
11
- t.string :encrypted_password, :null => false, :default => ""
13
+ t.string :encrypted_password, null: false, default: ''
12
14
 
13
15
  ## Recoverable
14
16
  # t.string :reset_password_token
@@ -18,13 +20,6 @@ class DeviseTokenAuthCreateLockableUsers < ActiveRecord::Migration[4.2]
18
20
  ## Rememberable
19
21
  # t.datetime :remember_created_at
20
22
 
21
- ## Trackable
22
- # t.integer :sign_in_count, :default => 0, :null => false
23
- # t.datetime :current_sign_in_at
24
- # t.datetime :last_sign_in_at
25
- # t.string :current_sign_in_ip
26
- # t.string :last_sign_in_ip
27
-
28
23
  ## Confirmable
29
24
  # t.string :confirmation_token
30
25
  # t.datetime :confirmed_at
@@ -32,7 +27,7 @@ class DeviseTokenAuthCreateLockableUsers < ActiveRecord::Migration[4.2]
32
27
  # t.string :unconfirmed_email # Only if using reconfirmable
33
28
 
34
29
  ## Lockable
35
- t.integer :failed_attempts, :default => 0, :null => false # Only if lock strategy is :failed_attempts
30
+ t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
36
31
  t.string :unlock_token # Only if unlock strategy is :email or :both
37
32
  t.datetime :locked_at
38
33
 
@@ -53,9 +48,9 @@ class DeviseTokenAuthCreateLockableUsers < ActiveRecord::Migration[4.2]
53
48
  end
54
49
 
55
50
  add_index :lockable_users, :email
56
- add_index :lockable_users, [:uid, :provider], :unique => true
51
+ add_index :lockable_users, [:uid, :provider], unique: true
57
52
  # add_index :lockable_users, :reset_password_token, :unique => true
58
53
  # add_index :lockable_users, :confirmation_token, :unique => true
59
- add_index :lockable_users, :unlock_token, :unique => true
54
+ add_index :lockable_users, :unlock_token, unique: true
60
55
  end
61
56
  end
@@ -1,6 +1,7 @@
1
- class DeviseTokenAuthCreateUsers < ActiveRecord::Migration[5.1]
1
+ class DeviseTokenAuthCreateConfirmableUsers < ActiveRecord::Migration[5.2]
2
2
  def change
3
- create_table(:users) do |t|
3
+
4
+ create_table(:confirmable_users) do |t|
4
5
  ## Required
5
6
  t.string :provider, :null => false, :default => "email"
6
7
  t.string :uid, :null => false, :default => ""
@@ -16,13 +17,6 @@ class DeviseTokenAuthCreateUsers < ActiveRecord::Migration[5.1]
16
17
  ## Rememberable
17
18
  t.datetime :remember_created_at
18
19
 
19
- ## Trackable
20
- t.integer :sign_in_count, :default => 0, :null => false
21
- t.datetime :current_sign_in_at
22
- t.datetime :last_sign_in_at
23
- t.string :current_sign_in_ip
24
- t.string :last_sign_in_ip
25
-
26
20
  ## Confirmable
27
21
  t.string :confirmation_token
28
22
  t.datetime :confirmed_at
@@ -46,10 +40,10 @@ class DeviseTokenAuthCreateUsers < ActiveRecord::Migration[5.1]
46
40
  t.timestamps
47
41
  end
48
42
 
49
- add_index :users, :email, unique: true
50
- add_index :users, [:uid, :provider], unique: true
51
- add_index :users, :reset_password_token, unique: true
52
- add_index :users, :confirmation_token, unique: true
53
- # add_index :users, :unlock_token, unique: true
43
+ add_index :confirmable_users, :email, unique: true
44
+ add_index :confirmable_users, [:uid, :provider], unique: true
45
+ add_index :confirmable_users, :reset_password_token, unique: true
46
+ add_index :confirmable_users, :confirmation_token, unique: true
47
+ # add_index :confirmable_users, :unlock_token, unique: true
54
48
  end
55
49
  end
@@ -10,20 +10,16 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 20160629184441) do
13
+ ActiveRecord::Schema.define(version: 2019_09_24_101113) do
14
14
 
15
- create_table "evil_users", force: :cascade do |t|
16
- t.string "email"
15
+ create_table "confirmable_users", force: :cascade do |t|
16
+ t.string "provider", default: "email", null: false
17
+ t.string "uid", default: "", null: false
17
18
  t.string "encrypted_password", default: "", null: false
18
19
  t.string "reset_password_token"
19
20
  t.datetime "reset_password_sent_at"
20
21
  t.boolean "allow_password_change", default: false
21
22
  t.datetime "remember_created_at"
22
- t.integer "sign_in_count", default: 0, null: false
23
- t.datetime "current_sign_in_at"
24
- t.datetime "last_sign_in_at"
25
- t.string "current_sign_in_ip"
26
- t.string "last_sign_in_ip"
27
23
  t.string "confirmation_token"
28
24
  t.datetime "confirmed_at"
29
25
  t.datetime "confirmation_sent_at"
@@ -31,16 +27,14 @@ ActiveRecord::Schema.define(version: 20160629184441) do
31
27
  t.string "name"
32
28
  t.string "nickname"
33
29
  t.string "image"
34
- t.string "provider"
35
- t.string "uid", default: "", null: false
30
+ t.string "email"
36
31
  t.text "tokens"
37
- t.string "favorite_color"
38
- t.datetime "created_at"
39
- t.datetime "updated_at"
40
- t.index ["confirmation_token"], name: "index_evil_users_on_confirmation_token", unique: true
41
- t.index ["email"], name: "index_evil_users_on_email"
42
- t.index ["reset_password_token"], name: "index_evil_users_on_reset_password_token", unique: true
43
- t.index ["uid", "provider"], name: "index_evil_users_on_uid_and_provider", unique: true
32
+ t.datetime "created_at", null: false
33
+ t.datetime "updated_at", null: false
34
+ t.index ["confirmation_token"], name: "index_confirmable_users_on_confirmation_token", unique: true
35
+ t.index ["email"], name: "index_confirmable_users_on_email", unique: true
36
+ t.index ["reset_password_token"], name: "index_confirmable_users_on_reset_password_token", unique: true
37
+ t.index ["uid", "provider"], name: "index_confirmable_users_on_uid_and_provider", unique: true
44
38
  end
45
39
 
46
40
  create_table "lockable_users", force: :cascade do |t|
@@ -70,11 +64,6 @@ ActiveRecord::Schema.define(version: 20160629184441) do
70
64
  t.string "reset_password_redirect_url"
71
65
  t.boolean "allow_password_change", default: false
72
66
  t.datetime "remember_created_at"
73
- t.integer "sign_in_count", default: 0, null: false
74
- t.datetime "current_sign_in_at"
75
- t.datetime "last_sign_in_at"
76
- t.string "current_sign_in_ip"
77
- t.string "last_sign_in_ip"
78
67
  t.string "confirmation_token"
79
68
  t.datetime "confirmed_at"
80
69
  t.datetime "confirmation_sent_at"
@@ -94,35 +83,6 @@ ActiveRecord::Schema.define(version: 20160629184441) do
94
83
  t.index ["uid", "provider"], name: "index_mangs_on_uid_and_provider", unique: true
95
84
  end
96
85
 
97
- create_table "nice_users", force: :cascade do |t|
98
- t.string "provider", null: false
99
- t.string "uid", default: "", null: false
100
- t.string "encrypted_password", default: "", null: false
101
- t.string "reset_password_token"
102
- t.datetime "reset_password_sent_at"
103
- t.boolean "allow_password_change", default: false
104
- t.datetime "remember_created_at"
105
- t.integer "sign_in_count", default: 0, null: false
106
- t.datetime "current_sign_in_at"
107
- t.datetime "last_sign_in_at"
108
- t.string "current_sign_in_ip"
109
- t.string "last_sign_in_ip"
110
- t.string "confirmation_token"
111
- t.datetime "confirmed_at"
112
- t.datetime "confirmation_sent_at"
113
- t.string "unconfirmed_email"
114
- t.string "name"
115
- t.string "nickname"
116
- t.string "image"
117
- t.string "email"
118
- t.text "tokens"
119
- t.datetime "created_at"
120
- t.datetime "updated_at"
121
- t.index ["email"], name: "index_nice_users_on_email"
122
- t.index ["reset_password_token"], name: "index_nice_users_on_reset_password_token", unique: true
123
- t.index ["uid", "provider"], name: "index_nice_users_on_uid_and_provider", unique: true
124
- end
125
-
126
86
  create_table "only_email_users", force: :cascade do |t|
127
87
  t.string "provider", null: false
128
88
  t.string "uid", default: "", null: false
@@ -146,11 +106,6 @@ ActiveRecord::Schema.define(version: 20160629184441) do
146
106
  t.datetime "reset_password_sent_at"
147
107
  t.boolean "allow_password_change", default: false
148
108
  t.datetime "remember_created_at"
149
- t.integer "sign_in_count", default: 0, null: false
150
- t.datetime "current_sign_in_at"
151
- t.datetime "last_sign_in_at"
152
- t.string "current_sign_in_ip"
153
- t.string "last_sign_in_ip"
154
109
  t.string "confirmation_token"
155
110
  t.datetime "confirmed_at"
156
111
  t.datetime "confirmation_sent_at"
@@ -175,11 +130,6 @@ ActiveRecord::Schema.define(version: 20160629184441) do
175
130
  t.datetime "reset_password_sent_at"
176
131
  t.boolean "allow_password_change", default: false
177
132
  t.datetime "remember_created_at"
178
- t.integer "sign_in_count", default: 0, null: false
179
- t.datetime "current_sign_in_at"
180
- t.datetime "last_sign_in_at"
181
- t.string "current_sign_in_ip"
182
- t.string "last_sign_in_ip"
183
133
  t.string "name"
184
134
  t.string "nickname"
185
135
  t.string "image"
@@ -200,11 +150,6 @@ ActiveRecord::Schema.define(version: 20160629184441) do
200
150
  t.datetime "reset_password_sent_at"
201
151
  t.boolean "allow_password_change", default: false
202
152
  t.datetime "remember_created_at"
203
- t.integer "sign_in_count", default: 0, null: false
204
- t.datetime "current_sign_in_at"
205
- t.datetime "last_sign_in_at"
206
- t.string "current_sign_in_ip"
207
- t.string "last_sign_in_ip"
208
153
  t.string "confirmation_token"
209
154
  t.datetime "confirmed_at"
210
155
  t.datetime "confirmation_sent_at"
@@ -229,11 +174,6 @@ ActiveRecord::Schema.define(version: 20160629184441) do
229
174
  t.string "reset_password_redirect_url"
230
175
  t.boolean "allow_password_change", default: false
231
176
  t.datetime "remember_created_at"
232
- t.integer "sign_in_count", default: 0, null: false
233
- t.datetime "current_sign_in_at"
234
- t.datetime "last_sign_in_at"
235
- t.string "current_sign_in_ip"
236
- t.string "last_sign_in_ip"
237
177
  t.string "confirmation_token"
238
178
  t.datetime "confirmed_at"
239
179
  t.datetime "confirmation_sent_at"
@@ -1,3 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ # polyfill Rails >= 5 versioned migrations
4
+
5
+ unless ActiveRecord::Migration.respond_to?(:[])
6
+ module ActiveRecord
7
+ class Migration
8
+ def self.[](_version)
9
+ self
10
+ end
11
+ end
12
+ end
13
+ end
14
+
1
15
  module MigrationDatabaseHelper
2
16
  def json_supported_database?
3
17
  (postgres? && postgres_correct_version?) || (mysql? && mysql_correct_version?)
@@ -26,4 +40,4 @@ module MigrationDatabaseHelper
26
40
  def database_version
27
41
  ActiveRecord::Base.connection.select_value('SELECT VERSION()')
28
42
  end
29
- end
43
+ end
@@ -0,0 +1,6 @@
1
+ class ApplicationController < ActionController::Base
2
+ include DeviseTokenAuth::Concerns::SetUserByToken
3
+ def whatever
4
+ 'whatever'
5
+ end
6
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Azpire::V1::HumanResource::User
4
+ include Mongoid::Document
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Locker
7
+
8
+ field :locker_locked_at, type: Time
9
+ field :locker_locked_until, type: Time
10
+
11
+ locker locked_at_field: :locker_locked_at,
12
+ locked_until_field: :locker_locked_until
13
+
14
+ ## Database authenticatable
15
+ field :email, type: String, default: ''
16
+ field :encrypted_password, type: String, default: ''
17
+
18
+ ## Recoverable
19
+ field :reset_password_token, type: String
20
+ field :reset_password_sent_at, type: Time
21
+ field :reset_password_redirect_url, type: String
22
+ field :allow_password_change, type: Boolean, default: false
23
+
24
+ ## Rememberable
25
+ field :remember_created_at, type: Time
26
+
27
+ ## Confirmable
28
+ field :confirmation_token, type: String
29
+ field :confirmed_at, type: Time
30
+ field :confirmation_sent_at, type: Time
31
+ field :unconfirmed_email, type: String # Only if using reconfirmable
32
+
33
+ ## Lockable
34
+ # field :failed_attempts, type: Integer, default: 0 # Only if lock strategy is :failed_attempts
35
+ # field :unlock_token, type: String # Only if unlock strategy is :email or :both
36
+ # field :locked_at, type: Time
37
+
38
+ ## Required
39
+ field :provider, type: String
40
+ field :uid, type: String, default: ''
41
+
42
+ ## Tokens
43
+ field :tokens, type: Hash, default: {}
44
+
45
+ # Include default devise modules. Others available are:
46
+ # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
47
+ devise :database_authenticatable, :registerable,
48
+ :recoverable, :rememberable, :validatable
49
+ include DeviseTokenAuth::Concerns::User
50
+
51
+ index({ email: 1 }, { name: 'email_index', unique: true, background: true })
52
+ index({ reset_password_token: 1 }, { name: 'reset_password_token_index', unique: true, sparse: true, background: true })
53
+ index({ confirmation_token: 1 }, { name: 'confirmation_token_index', unique: true, sparse: true, background: true })
54
+ index({ uid: 1, provider: 1}, { name: 'uid_provider_index', unique: true, background: true })
55
+ # index({ unlock_token: 1 }, { name: 'unlock_token_index', unique: true, sparse: true, background: true })
56
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  DeviseTokenAuth.setup do |config|
2
4
  # By default the authorization headers will change after each request. The
3
5
  # client is responsible for keeping track of the changing tokens. Change
@@ -9,6 +11,11 @@ DeviseTokenAuth.setup do |config|
9
11
  # determines how long tokens will remain valid after they are issued.
10
12
  # config.token_lifespan = 2.weeks
11
13
 
14
+ # Limiting the token_cost to just 4 in testing will increase the performance of
15
+ # your test suite dramatically. The possible cost value is within range from 4
16
+ # to 31. It is recommended to not use a value more than 10 in other environments.
17
+ config.token_cost = Rails.env.test? ? 4 : 10
18
+
12
19
  # Sets the max number of concurrent devices per user, which is 10 by default.
13
20
  # After this limit is reached, the oldest tokens will be removed.
14
21
  # config.max_number_of_devices = 10
@@ -45,4 +52,9 @@ DeviseTokenAuth.setup do |config|
45
52
  # If, however, you wish to integrate with legacy Devise authentication, you can
46
53
  # do so by enabling this flag. NOTE: This feature is highly experimental!
47
54
  # config.enable_standard_devise_support = false
55
+
56
+ # By default DeviseTokenAuth will not send confirmation email, even when including
57
+ # devise confirmable module. If you want to use devise confirmable module and
58
+ # send email, set it to true. (This is a setting for compatibility)
59
+ # config.send_confirmation_email = true
48
60
  end
@@ -0,0 +1,41 @@
1
+ FactoryBot.define do
2
+ factory :user do
3
+ email { Faker::Internet.unique.safe_email }
4
+ password { Faker::Internet.password }
5
+ provider { 'email' }
6
+
7
+ transient do
8
+ allow_unconfirmed_period { Time.now.utc - Devise.allow_unconfirmed_access_for }
9
+ end
10
+
11
+ trait :with_nickname do
12
+ nickname { Faker::Internet.username }
13
+ end
14
+
15
+ trait :confirmed do
16
+ after(:create) { |user| user.confirm }
17
+ end
18
+
19
+ # confirmation period is expired
20
+ trait :unconfirmed do
21
+ after(:create) do |user, evaluator|
22
+ user.update_attribute(:confirmation_sent_at, evaluator.allow_unconfirmed_period - 1.day )
23
+ end
24
+ end
25
+
26
+ trait :facebook do
27
+ uid { Faker::Number.number }
28
+ provider { 'facebook' }
29
+ end
30
+
31
+ trait :locked do
32
+ after(:create) { |user| user.lock_access! }
33
+ end
34
+
35
+ factory :lockable_user, class: 'LockableUser'
36
+ factory :mang_user, class: 'Mang'
37
+ factory :only_email_user, class: 'OnlyEmailUser'
38
+ factory :scoped_user, class: 'ScopedUser'
39
+ factory :confirmable_user, class: 'ConfirmableUser'
40
+ end
41
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class DeviseTokenAuth::BlacklistTest < ActiveSupport::TestCase
6
+ if defined? Devise::Models::Authenticatable::UNSAFE_ATTRIBUTES_FOR_SERIALIZATION
7
+ describe Devise::Models::Authenticatable::UNSAFE_ATTRIBUTES_FOR_SERIALIZATION do
8
+ test 'should include :tokens' do
9
+ assert Devise::Models::Authenticatable::UNSAFE_ATTRIBUTES_FOR_SERIALIZATION.include?(:tokens)
10
+ end
11
+ end
12
+ else
13
+ describe Devise::Models::Authenticatable::BLACKLIST_FOR_SERIALIZATION do
14
+ test 'should include :tokens' do
15
+ assert Devise::Models::Authenticatable::BLACKLIST_FOR_SERIALIZATION.include?(:tokens)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class DeviseTokenAuth::CustomRoutesTest < ActiveSupport::TestCase
6
+ after do
7
+ Rails.application.reload_routes!
8
+ end
9
+ test 'custom controllers' do
10
+ class ActionDispatch::Routing::Mapper
11
+ include Mocha::ParameterMatchers
12
+ end
13
+ Rails.application.routes.draw do
14
+ self.expects(:devise_for).with(
15
+ :users,
16
+ has_entries(
17
+ controllers: has_entries(
18
+ invitations: "custom/invitations", foo: "custom/foo"
19
+ )
20
+ )
21
+ )
22
+
23
+ mount_devise_token_auth_for 'User', at: 'my_custom_users', controllers: {
24
+ invitations: 'custom/invitations',
25
+ foo: 'custom/foo'
26
+ }
27
+ end
28
+ end
29
+ end