devise 4.4.2 → 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 (227) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +124 -4
  3. data/MIT-LICENSE +2 -1
  4. data/README.md +97 -61
  5. data/app/controllers/devise/passwords_controller.rb +1 -0
  6. data/app/controllers/devise/registrations_controller.rb +26 -8
  7. data/app/controllers/devise_controller.rb +3 -3
  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 +3 -3
  12. data/app/views/devise/passwords/new.html.erb +1 -1
  13. data/app/views/devise/registrations/edit.html.erb +4 -4
  14. data/app/views/devise/registrations/new.html.erb +3 -3
  15. data/app/views/devise/sessions/new.html.erb +3 -3
  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 +8 -3
  22. data/lib/devise/controllers/url_helpers.rb +1 -1
  23. data/lib/devise/failure_app.rb +25 -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 +51 -48
  28. data/lib/devise/models/confirmable.rb +18 -3
  29. data/lib/devise/models/database_authenticatable.rb +51 -13
  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 +9 -2
  37. data/lib/devise/models/validatable.rb +2 -2
  38. data/lib/devise/omniauth.rb +2 -5
  39. data/lib/devise/parameter_filter.rb +2 -0
  40. data/lib/devise/parameter_sanitizer.rb +13 -1
  41. data/lib/devise/rails/deprecated_constant_accessor.rb +39 -0
  42. data/lib/devise/rails/routes.rb +6 -6
  43. data/lib/devise/rails.rb +1 -7
  44. data/lib/devise/secret_key_finder.rb +27 -0
  45. data/lib/devise/strategies/authenticatable.rb +1 -1
  46. data/lib/devise/strategies/database_authenticatable.rb +6 -1
  47. data/lib/devise/test/controller_helpers.rb +4 -2
  48. data/lib/devise/test/integration_helpers.rb +1 -1
  49. data/lib/devise/version.rb +1 -1
  50. data/lib/devise.rb +15 -6
  51. data/lib/generators/active_record/devise_generator.rb +26 -11
  52. data/lib/generators/devise/controllers_generator.rb +1 -1
  53. data/lib/generators/devise/devise_generator.rb +1 -1
  54. data/lib/generators/devise/install_generator.rb +1 -5
  55. data/lib/generators/devise/orm_helpers.rb +2 -2
  56. data/lib/generators/devise/views_generator.rb +1 -1
  57. data/lib/generators/mongoid/devise_generator.rb +5 -5
  58. data/lib/generators/templates/README +9 -1
  59. data/lib/generators/templates/controllers/omniauth_callbacks_controller.rb +1 -1
  60. data/lib/generators/templates/devise.rb +34 -6
  61. data/lib/generators/templates/simple_form_for/confirmations/new.html.erb +5 -1
  62. data/lib/generators/templates/simple_form_for/passwords/edit.html.erb +10 -2
  63. data/lib/generators/templates/simple_form_for/passwords/new.html.erb +4 -1
  64. data/lib/generators/templates/simple_form_for/registrations/edit.html.erb +11 -3
  65. data/lib/generators/templates/simple_form_for/registrations/new.html.erb +11 -3
  66. data/lib/generators/templates/simple_form_for/sessions/new.html.erb +7 -2
  67. data/lib/generators/templates/simple_form_for/unlocks/new.html.erb +4 -1
  68. metadata +19 -314
  69. data/.gitignore +0 -10
  70. data/.travis.yml +0 -68
  71. data/.yardopts +0 -9
  72. data/CODE_OF_CONDUCT.md +0 -22
  73. data/CONTRIBUTING.md +0 -79
  74. data/Gemfile +0 -39
  75. data/Gemfile.lock +0 -193
  76. data/ISSUE_TEMPLATE.md +0 -19
  77. data/Rakefile +0 -37
  78. data/bin/test +0 -13
  79. data/devise.gemspec +0 -28
  80. data/devise.png +0 -0
  81. data/gemfiles/Gemfile.rails-4.1-stable +0 -32
  82. data/gemfiles/Gemfile.rails-4.1-stable.lock +0 -171
  83. data/gemfiles/Gemfile.rails-4.2-stable +0 -32
  84. data/gemfiles/Gemfile.rails-4.2-stable.lock +0 -192
  85. data/gemfiles/Gemfile.rails-5.0-stable +0 -33
  86. data/gemfiles/Gemfile.rails-5.0-stable.lock +0 -192
  87. data/gemfiles/Gemfile.rails-5.2-rc1 +0 -26
  88. data/gemfiles/Gemfile.rails-5.2-rc1.lock +0 -201
  89. data/guides/bug_report_templates/integration_test.rb +0 -106
  90. data/test/controllers/custom_registrations_controller_test.rb +0 -42
  91. data/test/controllers/custom_strategy_test.rb +0 -66
  92. data/test/controllers/helper_methods_test.rb +0 -24
  93. data/test/controllers/helpers_test.rb +0 -318
  94. data/test/controllers/inherited_controller_i18n_messages_test.rb +0 -53
  95. data/test/controllers/internal_helpers_test.rb +0 -129
  96. data/test/controllers/load_hooks_controller_test.rb +0 -21
  97. data/test/controllers/passwords_controller_test.rb +0 -34
  98. data/test/controllers/sessions_controller_test.rb +0 -108
  99. data/test/controllers/url_helpers_test.rb +0 -67
  100. data/test/delegator_test.rb +0 -21
  101. data/test/devise_test.rb +0 -109
  102. data/test/failure_app_test.rb +0 -340
  103. data/test/generators/active_record_generator_test.rb +0 -130
  104. data/test/generators/controllers_generator_test.rb +0 -50
  105. data/test/generators/devise_generator_test.rb +0 -41
  106. data/test/generators/install_generator_test.rb +0 -26
  107. data/test/generators/mongoid_generator_test.rb +0 -25
  108. data/test/generators/views_generator_test.rb +0 -105
  109. data/test/helpers/devise_helper_test.rb +0 -51
  110. data/test/integration/authenticatable_test.rb +0 -706
  111. data/test/integration/confirmable_test.rb +0 -326
  112. data/test/integration/database_authenticatable_test.rb +0 -97
  113. data/test/integration/http_authenticatable_test.rb +0 -114
  114. data/test/integration/lockable_test.rb +0 -242
  115. data/test/integration/mounted_engine_test.rb +0 -38
  116. data/test/integration/omniauthable_test.rb +0 -148
  117. data/test/integration/recoverable_test.rb +0 -349
  118. data/test/integration/registerable_test.rb +0 -365
  119. data/test/integration/rememberable_test.rb +0 -219
  120. data/test/integration/timeoutable_test.rb +0 -186
  121. data/test/integration/trackable_test.rb +0 -99
  122. data/test/mailers/confirmation_instructions_test.rb +0 -117
  123. data/test/mailers/email_changed_test.rb +0 -132
  124. data/test/mailers/mailer_test.rb +0 -20
  125. data/test/mailers/reset_password_instructions_test.rb +0 -98
  126. data/test/mailers/unlock_instructions_test.rb +0 -93
  127. data/test/mapping_test.rb +0 -136
  128. data/test/models/authenticatable_test.rb +0 -25
  129. data/test/models/confirmable_test.rb +0 -549
  130. data/test/models/database_authenticatable_test.rb +0 -283
  131. data/test/models/lockable_test.rb +0 -352
  132. data/test/models/omniauthable_test.rb +0 -9
  133. data/test/models/recoverable_test.rb +0 -263
  134. data/test/models/registerable_test.rb +0 -9
  135. data/test/models/rememberable_test.rb +0 -184
  136. data/test/models/serializable_test.rb +0 -60
  137. data/test/models/timeoutable_test.rb +0 -53
  138. data/test/models/trackable_test.rb +0 -62
  139. data/test/models/validatable_test.rb +0 -121
  140. data/test/models_test.rb +0 -155
  141. data/test/omniauth/config_test.rb +0 -61
  142. data/test/omniauth/url_helpers_test.rb +0 -53
  143. data/test/orm/active_record.rb +0 -24
  144. data/test/orm/mongoid.rb +0 -15
  145. data/test/parameter_sanitizer_test.rb +0 -77
  146. data/test/rails_app/Rakefile +0 -6
  147. data/test/rails_app/app/active_record/admin.rb +0 -8
  148. data/test/rails_app/app/active_record/shim.rb +0 -4
  149. data/test/rails_app/app/active_record/user.rb +0 -20
  150. data/test/rails_app/app/active_record/user_on_engine.rb +0 -9
  151. data/test/rails_app/app/active_record/user_on_main_app.rb +0 -9
  152. data/test/rails_app/app/active_record/user_with_validations.rb +0 -12
  153. data/test/rails_app/app/active_record/user_without_email.rb +0 -10
  154. data/test/rails_app/app/controllers/admins/sessions_controller.rb +0 -8
  155. data/test/rails_app/app/controllers/admins_controller.rb +0 -8
  156. data/test/rails_app/app/controllers/application_controller.rb +0 -13
  157. data/test/rails_app/app/controllers/application_with_fake_engine.rb +0 -32
  158. data/test/rails_app/app/controllers/custom/registrations_controller.rb +0 -33
  159. data/test/rails_app/app/controllers/home_controller.rb +0 -31
  160. data/test/rails_app/app/controllers/publisher/registrations_controller.rb +0 -4
  161. data/test/rails_app/app/controllers/publisher/sessions_controller.rb +0 -4
  162. data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +0 -16
  163. data/test/rails_app/app/controllers/users_controller.rb +0 -33
  164. data/test/rails_app/app/helpers/application_helper.rb +0 -5
  165. data/test/rails_app/app/mailers/users/from_proc_mailer.rb +0 -5
  166. data/test/rails_app/app/mailers/users/mailer.rb +0 -5
  167. data/test/rails_app/app/mailers/users/reply_to_mailer.rb +0 -6
  168. data/test/rails_app/app/mongoid/admin.rb +0 -31
  169. data/test/rails_app/app/mongoid/shim.rb +0 -25
  170. data/test/rails_app/app/mongoid/user.rb +0 -50
  171. data/test/rails_app/app/mongoid/user_on_engine.rb +0 -41
  172. data/test/rails_app/app/mongoid/user_on_main_app.rb +0 -41
  173. data/test/rails_app/app/mongoid/user_with_validations.rb +0 -37
  174. data/test/rails_app/app/mongoid/user_without_email.rb +0 -35
  175. data/test/rails_app/app/views/admins/index.html.erb +0 -1
  176. data/test/rails_app/app/views/admins/sessions/new.html.erb +0 -2
  177. data/test/rails_app/app/views/home/admin_dashboard.html.erb +0 -1
  178. data/test/rails_app/app/views/home/index.html.erb +0 -1
  179. data/test/rails_app/app/views/home/join.html.erb +0 -1
  180. data/test/rails_app/app/views/home/private.html.erb +0 -1
  181. data/test/rails_app/app/views/home/user_dashboard.html.erb +0 -1
  182. data/test/rails_app/app/views/layouts/application.html.erb +0 -24
  183. data/test/rails_app/app/views/users/edit_form.html.erb +0 -1
  184. data/test/rails_app/app/views/users/index.html.erb +0 -1
  185. data/test/rails_app/app/views/users/mailer/confirmation_instructions.erb +0 -1
  186. data/test/rails_app/app/views/users/sessions/new.html.erb +0 -1
  187. data/test/rails_app/bin/bundle +0 -3
  188. data/test/rails_app/bin/rails +0 -4
  189. data/test/rails_app/bin/rake +0 -4
  190. data/test/rails_app/config/application.rb +0 -48
  191. data/test/rails_app/config/boot.rb +0 -27
  192. data/test/rails_app/config/database.yml +0 -18
  193. data/test/rails_app/config/environment.rb +0 -7
  194. data/test/rails_app/config/environments/development.rb +0 -32
  195. data/test/rails_app/config/environments/production.rb +0 -88
  196. data/test/rails_app/config/environments/test.rb +0 -47
  197. data/test/rails_app/config/initializers/backtrace_silencers.rb +0 -9
  198. data/test/rails_app/config/initializers/devise.rb +0 -182
  199. data/test/rails_app/config/initializers/inflections.rb +0 -4
  200. data/test/rails_app/config/initializers/secret_token.rb +0 -5
  201. data/test/rails_app/config/initializers/session_store.rb +0 -3
  202. data/test/rails_app/config/routes.rb +0 -128
  203. data/test/rails_app/config.ru +0 -4
  204. data/test/rails_app/db/migrate/20100401102949_create_tables.rb +0 -77
  205. data/test/rails_app/db/schema.rb +0 -57
  206. data/test/rails_app/lib/shared_admin.rb +0 -23
  207. data/test/rails_app/lib/shared_user.rb +0 -32
  208. data/test/rails_app/lib/shared_user_without_email.rb +0 -28
  209. data/test/rails_app/lib/shared_user_without_omniauth.rb +0 -15
  210. data/test/rails_app/public/404.html +0 -26
  211. data/test/rails_app/public/422.html +0 -26
  212. data/test/rails_app/public/500.html +0 -26
  213. data/test/rails_app/public/favicon.ico +0 -0
  214. data/test/rails_test.rb +0 -11
  215. data/test/routes_test.rb +0 -281
  216. data/test/support/action_controller/record_identifier.rb +0 -12
  217. data/test/support/assertions.rb +0 -30
  218. data/test/support/helpers.rb +0 -83
  219. data/test/support/http_method_compatibility.rb +0 -53
  220. data/test/support/integration.rb +0 -95
  221. data/test/support/locale/en.yml +0 -8
  222. data/test/support/mongoid.yml +0 -6
  223. data/test/support/webrat/integrations/rails.rb +0 -35
  224. data/test/test/controller_helpers_test.rb +0 -193
  225. data/test/test/integration_helpers_test.rb +0 -34
  226. data/test/test_helper.rb +0 -36
  227. 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