devise 4.5.0 → 4.8.1

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 (219) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -4
  3. data/MIT-LICENSE +2 -1
  4. data/README.md +93 -56
  5. data/app/controllers/devise/passwords_controller.rb +1 -0
  6. data/app/controllers/devise/registrations_controller.rb +25 -7
  7. data/app/controllers/devise_controller.rb +2 -2
  8. data/app/helpers/devise_helper.rb +21 -18
  9. data/app/mailers/devise/mailer.rb +5 -5
  10. data/app/views/devise/confirmations/new.html.erb +1 -1
  11. data/app/views/devise/passwords/edit.html.erb +2 -2
  12. data/app/views/devise/passwords/new.html.erb +1 -1
  13. data/app/views/devise/registrations/edit.html.erb +1 -1
  14. data/app/views/devise/registrations/new.html.erb +1 -1
  15. data/app/views/devise/sessions/new.html.erb +2 -2
  16. data/app/views/devise/shared/_error_messages.html.erb +15 -0
  17. data/app/views/devise/shared/_links.html.erb +8 -8
  18. data/app/views/devise/unlocks/new.html.erb +1 -1
  19. data/config/locales/en.yml +3 -2
  20. data/lib/devise/controllers/helpers.rb +8 -8
  21. data/lib/devise/controllers/sign_in_out.rb +6 -4
  22. data/lib/devise/controllers/url_helpers.rb +1 -1
  23. data/lib/devise/failure_app.rb +23 -5
  24. data/lib/devise/hooks/lockable.rb +2 -5
  25. data/lib/devise/hooks/timeoutable.rb +2 -2
  26. data/lib/devise/mapping.rb +1 -1
  27. data/lib/devise/models/authenticatable.rb +20 -24
  28. data/lib/devise/models/confirmable.rb +18 -3
  29. data/lib/devise/models/database_authenticatable.rb +44 -6
  30. data/lib/devise/models/lockable.rb +12 -4
  31. data/lib/devise/models/omniauthable.rb +2 -2
  32. data/lib/devise/models/recoverable.rb +3 -3
  33. data/lib/devise/models/registerable.rb +2 -0
  34. data/lib/devise/models/rememberable.rb +2 -2
  35. data/lib/devise/models/timeoutable.rb +1 -1
  36. data/lib/devise/models/trackable.rb +1 -1
  37. data/lib/devise/models/validatable.rb +2 -2
  38. data/lib/devise/omniauth.rb +2 -5
  39. data/lib/devise/rails/deprecated_constant_accessor.rb +39 -0
  40. data/lib/devise/rails/routes.rb +6 -6
  41. data/lib/devise/strategies/authenticatable.rb +1 -1
  42. data/lib/devise/strategies/database_authenticatable.rb +3 -0
  43. data/lib/devise/test/controller_helpers.rb +4 -2
  44. data/lib/devise/test/integration_helpers.rb +1 -1
  45. data/lib/devise/version.rb +1 -1
  46. data/lib/devise.rb +14 -6
  47. data/lib/generators/active_record/devise_generator.rb +21 -6
  48. data/lib/generators/devise/controllers_generator.rb +1 -1
  49. data/lib/generators/devise/devise_generator.rb +1 -1
  50. data/lib/generators/devise/install_generator.rb +1 -5
  51. data/lib/generators/devise/views_generator.rb +1 -1
  52. data/lib/generators/templates/README +9 -1
  53. data/lib/generators/templates/controllers/omniauth_callbacks_controller.rb +1 -1
  54. data/lib/generators/templates/devise.rb +27 -6
  55. data/lib/generators/templates/simple_form_for/passwords/edit.html.erb +4 -1
  56. data/lib/generators/templates/simple_form_for/registrations/edit.html.erb +1 -1
  57. data/lib/generators/templates/simple_form_for/registrations/new.html.erb +1 -1
  58. metadata +18 -318
  59. data/.gitignore +0 -10
  60. data/.travis.yml +0 -69
  61. data/.yardopts +0 -9
  62. data/CODE_OF_CONDUCT.md +0 -22
  63. data/CONTRIBUTING.md +0 -79
  64. data/Gemfile +0 -39
  65. data/Gemfile.lock +0 -202
  66. data/ISSUE_TEMPLATE.md +0 -19
  67. data/Rakefile +0 -37
  68. data/bin/test +0 -13
  69. data/devise.gemspec +0 -28
  70. data/devise.png +0 -0
  71. data/gemfiles/Gemfile.rails-4.1-stable +0 -32
  72. data/gemfiles/Gemfile.rails-4.1-stable.lock +0 -171
  73. data/gemfiles/Gemfile.rails-4.2-stable +0 -32
  74. data/gemfiles/Gemfile.rails-4.2-stable.lock +0 -192
  75. data/gemfiles/Gemfile.rails-5.0-stable +0 -33
  76. data/gemfiles/Gemfile.rails-5.0-stable.lock +0 -192
  77. data/gemfiles/Gemfile.rails-5.2-rc1 +0 -26
  78. data/gemfiles/Gemfile.rails-5.2-rc1.lock +0 -201
  79. data/guides/bug_report_templates/integration_test.rb +0 -106
  80. data/test/controllers/custom_registrations_controller_test.rb +0 -42
  81. data/test/controllers/custom_strategy_test.rb +0 -66
  82. data/test/controllers/helper_methods_test.rb +0 -24
  83. data/test/controllers/helpers_test.rb +0 -318
  84. data/test/controllers/inherited_controller_i18n_messages_test.rb +0 -53
  85. data/test/controllers/internal_helpers_test.rb +0 -129
  86. data/test/controllers/load_hooks_controller_test.rb +0 -21
  87. data/test/controllers/passwords_controller_test.rb +0 -34
  88. data/test/controllers/sessions_controller_test.rb +0 -108
  89. data/test/controllers/url_helpers_test.rb +0 -67
  90. data/test/delegator_test.rb +0 -21
  91. data/test/devise_test.rb +0 -109
  92. data/test/failure_app_test.rb +0 -346
  93. data/test/generators/active_record_generator_test.rb +0 -130
  94. data/test/generators/controllers_generator_test.rb +0 -50
  95. data/test/generators/devise_generator_test.rb +0 -41
  96. data/test/generators/install_generator_test.rb +0 -26
  97. data/test/generators/mongoid_generator_test.rb +0 -25
  98. data/test/generators/views_generator_test.rb +0 -105
  99. data/test/helpers/devise_helper_test.rb +0 -51
  100. data/test/integration/authenticatable_test.rb +0 -706
  101. data/test/integration/confirmable_test.rb +0 -326
  102. data/test/integration/database_authenticatable_test.rb +0 -110
  103. data/test/integration/http_authenticatable_test.rb +0 -114
  104. data/test/integration/lockable_test.rb +0 -242
  105. data/test/integration/mounted_engine_test.rb +0 -38
  106. data/test/integration/omniauthable_test.rb +0 -148
  107. data/test/integration/recoverable_test.rb +0 -349
  108. data/test/integration/registerable_test.rb +0 -365
  109. data/test/integration/rememberable_test.rb +0 -219
  110. data/test/integration/timeoutable_test.rb +0 -186
  111. data/test/integration/trackable_test.rb +0 -99
  112. data/test/mailers/confirmation_instructions_test.rb +0 -117
  113. data/test/mailers/email_changed_test.rb +0 -132
  114. data/test/mailers/mailer_test.rb +0 -20
  115. data/test/mailers/reset_password_instructions_test.rb +0 -98
  116. data/test/mailers/unlock_instructions_test.rb +0 -93
  117. data/test/mapping_test.rb +0 -136
  118. data/test/models/authenticatable_test.rb +0 -25
  119. data/test/models/confirmable_test.rb +0 -549
  120. data/test/models/database_authenticatable_test.rb +0 -290
  121. data/test/models/lockable_test.rb +0 -352
  122. data/test/models/omniauthable_test.rb +0 -9
  123. data/test/models/recoverable_test.rb +0 -263
  124. data/test/models/registerable_test.rb +0 -9
  125. data/test/models/rememberable_test.rb +0 -184
  126. data/test/models/serializable_test.rb +0 -60
  127. data/test/models/timeoutable_test.rb +0 -53
  128. data/test/models/trackable_test.rb +0 -80
  129. data/test/models/validatable_test.rb +0 -121
  130. data/test/models_test.rb +0 -155
  131. data/test/omniauth/config_test.rb +0 -61
  132. data/test/omniauth/url_helpers_test.rb +0 -53
  133. data/test/orm/active_record.rb +0 -24
  134. data/test/orm/mongoid.rb +0 -15
  135. data/test/parameter_sanitizer_test.rb +0 -105
  136. data/test/rails_app/Rakefile +0 -6
  137. data/test/rails_app/app/active_record/admin.rb +0 -8
  138. data/test/rails_app/app/active_record/shim.rb +0 -4
  139. data/test/rails_app/app/active_record/user.rb +0 -20
  140. data/test/rails_app/app/active_record/user_on_engine.rb +0 -9
  141. data/test/rails_app/app/active_record/user_on_main_app.rb +0 -9
  142. data/test/rails_app/app/active_record/user_with_validations.rb +0 -12
  143. data/test/rails_app/app/active_record/user_without_email.rb +0 -10
  144. data/test/rails_app/app/controllers/admins/sessions_controller.rb +0 -8
  145. data/test/rails_app/app/controllers/admins_controller.rb +0 -8
  146. data/test/rails_app/app/controllers/application_controller.rb +0 -13
  147. data/test/rails_app/app/controllers/application_with_fake_engine.rb +0 -32
  148. data/test/rails_app/app/controllers/custom/registrations_controller.rb +0 -33
  149. data/test/rails_app/app/controllers/home_controller.rb +0 -31
  150. data/test/rails_app/app/controllers/publisher/registrations_controller.rb +0 -4
  151. data/test/rails_app/app/controllers/publisher/sessions_controller.rb +0 -4
  152. data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +0 -16
  153. data/test/rails_app/app/controllers/users_controller.rb +0 -33
  154. data/test/rails_app/app/helpers/application_helper.rb +0 -5
  155. data/test/rails_app/app/mailers/users/from_proc_mailer.rb +0 -5
  156. data/test/rails_app/app/mailers/users/mailer.rb +0 -5
  157. data/test/rails_app/app/mailers/users/reply_to_mailer.rb +0 -6
  158. data/test/rails_app/app/mongoid/admin.rb +0 -31
  159. data/test/rails_app/app/mongoid/shim.rb +0 -25
  160. data/test/rails_app/app/mongoid/user.rb +0 -50
  161. data/test/rails_app/app/mongoid/user_on_engine.rb +0 -41
  162. data/test/rails_app/app/mongoid/user_on_main_app.rb +0 -41
  163. data/test/rails_app/app/mongoid/user_with_validations.rb +0 -37
  164. data/test/rails_app/app/mongoid/user_without_email.rb +0 -35
  165. data/test/rails_app/app/views/admins/index.html.erb +0 -1
  166. data/test/rails_app/app/views/admins/sessions/new.html.erb +0 -2
  167. data/test/rails_app/app/views/home/admin_dashboard.html.erb +0 -1
  168. data/test/rails_app/app/views/home/index.html.erb +0 -1
  169. data/test/rails_app/app/views/home/join.html.erb +0 -1
  170. data/test/rails_app/app/views/home/private.html.erb +0 -1
  171. data/test/rails_app/app/views/home/user_dashboard.html.erb +0 -1
  172. data/test/rails_app/app/views/layouts/application.html.erb +0 -24
  173. data/test/rails_app/app/views/users/edit_form.html.erb +0 -1
  174. data/test/rails_app/app/views/users/index.html.erb +0 -1
  175. data/test/rails_app/app/views/users/mailer/confirmation_instructions.erb +0 -1
  176. data/test/rails_app/app/views/users/sessions/new.html.erb +0 -1
  177. data/test/rails_app/bin/bundle +0 -3
  178. data/test/rails_app/bin/rails +0 -4
  179. data/test/rails_app/bin/rake +0 -4
  180. data/test/rails_app/config/application.rb +0 -48
  181. data/test/rails_app/config/boot.rb +0 -27
  182. data/test/rails_app/config/database.yml +0 -18
  183. data/test/rails_app/config/environment.rb +0 -7
  184. data/test/rails_app/config/environments/development.rb +0 -32
  185. data/test/rails_app/config/environments/production.rb +0 -88
  186. data/test/rails_app/config/environments/test.rb +0 -47
  187. data/test/rails_app/config/initializers/backtrace_silencers.rb +0 -9
  188. data/test/rails_app/config/initializers/devise.rb +0 -187
  189. data/test/rails_app/config/initializers/inflections.rb +0 -4
  190. data/test/rails_app/config/initializers/secret_token.rb +0 -5
  191. data/test/rails_app/config/initializers/session_store.rb +0 -3
  192. data/test/rails_app/config/routes.rb +0 -128
  193. data/test/rails_app/config.ru +0 -4
  194. data/test/rails_app/db/migrate/20100401102949_create_tables.rb +0 -77
  195. data/test/rails_app/db/schema.rb +0 -57
  196. data/test/rails_app/lib/lazy_load_test_module.rb +0 -5
  197. data/test/rails_app/lib/shared_admin.rb +0 -23
  198. data/test/rails_app/lib/shared_user.rb +0 -32
  199. data/test/rails_app/lib/shared_user_without_email.rb +0 -28
  200. data/test/rails_app/lib/shared_user_without_omniauth.rb +0 -15
  201. data/test/rails_app/public/404.html +0 -26
  202. data/test/rails_app/public/422.html +0 -26
  203. data/test/rails_app/public/500.html +0 -26
  204. data/test/rails_app/public/favicon.ico +0 -0
  205. data/test/rails_test.rb +0 -11
  206. data/test/routes_test.rb +0 -281
  207. data/test/secret_key_finder_test.rb +0 -121
  208. data/test/support/action_controller/record_identifier.rb +0 -12
  209. data/test/support/assertions.rb +0 -30
  210. data/test/support/helpers.rb +0 -83
  211. data/test/support/http_method_compatibility.rb +0 -53
  212. data/test/support/integration.rb +0 -95
  213. data/test/support/locale/en.yml +0 -8
  214. data/test/support/mongoid.yml +0 -6
  215. data/test/support/webrat/integrations/rails.rb +0 -35
  216. data/test/test/controller_helpers_test.rb +0 -193
  217. data/test/test/integration_helpers_test.rb +0 -34
  218. data/test/test_helper.rb +0 -36
  219. data/test/test_models.rb +0 -35
@@ -1,105 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "test_helper"
4
-
5
- class ViewsGeneratorTest < Rails::Generators::TestCase
6
- tests Devise::Generators::ViewsGenerator
7
- destination File.expand_path("../../tmp", __FILE__)
8
- setup :prepare_destination
9
-
10
- test "Assert all views are properly created with no params" do
11
- run_generator
12
- assert_files
13
- assert_shared_links
14
- end
15
-
16
- test "Assert all views are properly created with scope param" do
17
- run_generator %w(users)
18
- assert_files "users"
19
- assert_shared_links "users"
20
-
21
- run_generator %w(admins)
22
- assert_files "admins"
23
- assert_shared_links "admins"
24
- end
25
-
26
- test "Assert views with simple form" do
27
- run_generator %w(-b simple_form_for)
28
- assert_files
29
- assert_file "app/views/devise/confirmations/new.html.erb", /simple_form_for/
30
-
31
- run_generator %w(users -b simple_form_for)
32
- assert_files "users"
33
- assert_file "app/views/users/confirmations/new.html.erb", /simple_form_for/
34
- end
35
-
36
- test "Assert views with markerb" do
37
- run_generator %w(--markerb)
38
- assert_files nil, mail_template_engine: "markerb"
39
- end
40
-
41
-
42
- test "Assert only views within specified directories" do
43
- run_generator %w(-v sessions registrations)
44
- assert_file "app/views/devise/sessions/new.html.erb"
45
- assert_file "app/views/devise/registrations/new.html.erb"
46
- assert_file "app/views/devise/registrations/edit.html.erb"
47
- assert_no_file "app/views/devise/confirmations/new.html.erb"
48
- assert_no_file "app/views/devise/mailer/confirmation_instructions.html.erb"
49
- end
50
-
51
- test "Assert mailer specific directory with simple form" do
52
- run_generator %w(-v mailer -b simple_form_for)
53
- assert_file "app/views/devise/mailer/confirmation_instructions.html.erb"
54
- assert_file "app/views/devise/mailer/reset_password_instructions.html.erb"
55
- assert_file "app/views/devise/mailer/unlock_instructions.html.erb"
56
- end
57
-
58
- test "Assert specified directories with scope" do
59
- run_generator %w(users -v sessions)
60
- assert_file "app/views/users/sessions/new.html.erb"
61
- assert_no_file "app/views/users/confirmations/new.html.erb"
62
- end
63
-
64
- test "Assert specified directories with simple form" do
65
- run_generator %w(-v registrations -b simple_form_for)
66
- assert_file "app/views/devise/registrations/new.html.erb", /simple_form_for/
67
- assert_no_file "app/views/devise/confirmations/new.html.erb"
68
- end
69
-
70
- test "Assert specified directories with markerb" do
71
- run_generator %w(--markerb -v passwords mailer)
72
- assert_file "app/views/devise/passwords/new.html.erb"
73
- assert_no_file "app/views/devise/confirmations/new.html.erb"
74
- assert_file "app/views/devise/mailer/reset_password_instructions.markerb"
75
- end
76
-
77
- def assert_files(scope = nil, options={})
78
- scope = "devise" if scope.nil?
79
- mail_template_engine = options[:mail_template_engine] || "html.erb"
80
-
81
- assert_file "app/views/#{scope}/confirmations/new.html.erb"
82
- assert_file "app/views/#{scope}/mailer/confirmation_instructions.#{mail_template_engine}"
83
- assert_file "app/views/#{scope}/mailer/reset_password_instructions.#{mail_template_engine}"
84
- assert_file "app/views/#{scope}/mailer/unlock_instructions.#{mail_template_engine}"
85
- assert_file "app/views/#{scope}/passwords/edit.html.erb"
86
- assert_file "app/views/#{scope}/passwords/new.html.erb"
87
- assert_file "app/views/#{scope}/registrations/new.html.erb"
88
- assert_file "app/views/#{scope}/registrations/edit.html.erb"
89
- assert_file "app/views/#{scope}/sessions/new.html.erb"
90
- assert_file "app/views/#{scope}/shared/_links.html.erb"
91
- assert_file "app/views/#{scope}/unlocks/new.html.erb"
92
- end
93
-
94
- def assert_shared_links(scope = nil)
95
- scope = "devise" if scope.nil?
96
- link = /<%= render \"#{scope}\/shared\/links\" %>/
97
-
98
- assert_file "app/views/#{scope}/passwords/edit.html.erb", link
99
- assert_file "app/views/#{scope}/passwords/new.html.erb", link
100
- assert_file "app/views/#{scope}/confirmations/new.html.erb", link
101
- assert_file "app/views/#{scope}/registrations/new.html.erb", link
102
- assert_file "app/views/#{scope}/sessions/new.html.erb", link
103
- assert_file "app/views/#{scope}/unlocks/new.html.erb", link
104
- end
105
- end
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class DeviseHelperTest < Devise::IntegrationTest
6
- setup do
7
- model_labels = { models: { user: "the user" } }
8
- translations = {
9
- errors: { messages: { not_saved: {
10
- one: "Can't save %{resource} because of 1 error",
11
- other: "Can't save %{resource} because of %{count} errors",
12
- } } },
13
- activerecord: model_labels,
14
- mongoid: model_labels
15
- }
16
-
17
- I18n.available_locales
18
- I18n.backend.store_translations(:en, translations)
19
- end
20
-
21
- teardown do
22
- I18n.reload!
23
- end
24
-
25
- test 'test errors.messages.not_saved with single error from i18n' do
26
- get new_user_registration_path
27
-
28
- fill_in 'password', with: 'new_user123'
29
- fill_in 'password confirmation', with: 'new_user123'
30
- click_button 'Sign up'
31
-
32
- assert_have_selector '#error_explanation'
33
- assert_contain "Can't save the user because of 1 error"
34
- end
35
-
36
- test 'test errors.messages.not_saved with multiple errors from i18n' do
37
- # Dirty tracking behavior prevents email validations from being applied:
38
- # https://github.com/mongoid/mongoid/issues/756
39
- (pending "Fails on Mongoid < 2.1"; break) if defined?(Mongoid) && Mongoid::VERSION.to_f < 2.1
40
-
41
- get new_user_registration_path
42
-
43
- fill_in 'email', with: 'invalid_email'
44
- fill_in 'password', with: 'new_user123'
45
- fill_in 'password confirmation', with: 'new_user321'
46
- click_button 'Sign up'
47
-
48
- assert_have_selector '#error_explanation'
49
- assert_contain "Can't save the user because of 2 errors"
50
- end
51
- end