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