devise 4.3.0 → 4.4.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of devise might be problematic. Click here for more details.

Files changed (217) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +15 -5
  3. data/CHANGELOG.md +41 -0
  4. data/Gemfile +2 -3
  5. data/Gemfile.lock +3 -4
  6. data/ISSUE_TEMPLATE.md +19 -0
  7. data/README.md +97 -4
  8. data/Rakefile +1 -0
  9. data/app/controllers/devise/confirmations_controller.rb +2 -0
  10. data/app/controllers/devise/omniauth_callbacks_controller.rb +3 -1
  11. data/app/controllers/devise/passwords_controller.rb +2 -0
  12. data/app/controllers/devise/registrations_controller.rb +5 -3
  13. data/app/controllers/devise/sessions_controller.rb +3 -1
  14. data/app/controllers/devise/unlocks_controller.rb +2 -0
  15. data/app/controllers/devise_controller.rb +2 -0
  16. data/app/helpers/devise_helper.rb +2 -0
  17. data/app/mailers/devise/mailer.rb +2 -0
  18. data/app/views/devise/confirmations/new.html.erb +1 -1
  19. data/app/views/devise/passwords/new.html.erb +1 -1
  20. data/app/views/devise/registrations/edit.html.erb +1 -1
  21. data/app/views/devise/registrations/new.html.erb +1 -1
  22. data/app/views/devise/sessions/new.html.erb +1 -1
  23. data/app/views/devise/unlocks/new.html.erb +1 -1
  24. data/devise.gemspec +3 -1
  25. data/gemfiles/Gemfile.rails-4.1-stable +3 -1
  26. data/gemfiles/Gemfile.rails-4.1-stable.lock +4 -4
  27. data/gemfiles/Gemfile.rails-4.2-stable +3 -1
  28. data/gemfiles/Gemfile.rails-4.2-stable.lock +4 -4
  29. data/gemfiles/Gemfile.rails-5.0-stable +2 -3
  30. data/gemfiles/Gemfile.rails-5.0-stable.lock +3 -4
  31. data/gemfiles/Gemfile.rails-5.2-rc1 +26 -0
  32. data/gemfiles/Gemfile.rails-5.2-rc1.lock +201 -0
  33. data/guides/bug_report_templates/integration_test.rb +2 -0
  34. data/lib/devise/controllers/helpers.rb +2 -0
  35. data/lib/devise/controllers/rememberable.rb +2 -0
  36. data/lib/devise/controllers/scoped_views.rb +2 -0
  37. data/lib/devise/controllers/sign_in_out.rb +6 -1
  38. data/lib/devise/controllers/store_location.rb +24 -6
  39. data/lib/devise/controllers/url_helpers.rb +2 -0
  40. data/lib/devise/delegator.rb +2 -0
  41. data/lib/devise/encryptor.rb +2 -0
  42. data/lib/devise/failure_app.rb +2 -0
  43. data/lib/devise/hooks/activatable.rb +2 -0
  44. data/lib/devise/hooks/csrf_cleaner.rb +2 -0
  45. data/lib/devise/hooks/forgetable.rb +2 -0
  46. data/lib/devise/hooks/lockable.rb +2 -0
  47. data/lib/devise/hooks/proxy.rb +2 -0
  48. data/lib/devise/hooks/rememberable.rb +2 -0
  49. data/lib/devise/hooks/timeoutable.rb +2 -0
  50. data/lib/devise/hooks/trackable.rb +2 -0
  51. data/lib/devise/mailers/helpers.rb +2 -0
  52. data/lib/devise/mapping.rb +2 -0
  53. data/lib/devise/models/authenticatable.rb +4 -2
  54. data/lib/devise/models/confirmable.rb +3 -1
  55. data/lib/devise/models/database_authenticatable.rb +3 -1
  56. data/lib/devise/models/lockable.rb +8 -2
  57. data/lib/devise/models/omniauthable.rb +2 -0
  58. data/lib/devise/models/recoverable.rb +2 -0
  59. data/lib/devise/models/registerable.rb +2 -0
  60. data/lib/devise/models/rememberable.rb +3 -1
  61. data/lib/devise/models/timeoutable.rb +2 -0
  62. data/lib/devise/models/trackable.rb +7 -0
  63. data/lib/devise/models/validatable.rb +3 -1
  64. data/lib/devise/models.rb +2 -0
  65. data/lib/devise/modules.rb +2 -0
  66. data/lib/devise/omniauth/config.rb +2 -0
  67. data/lib/devise/omniauth/url_helpers.rb +2 -0
  68. data/lib/devise/omniauth.rb +2 -0
  69. data/lib/devise/orm/active_record.rb +2 -0
  70. data/lib/devise/orm/mongoid.rb +2 -0
  71. data/lib/devise/parameter_filter.rb +2 -0
  72. data/lib/devise/parameter_sanitizer.rb +2 -0
  73. data/lib/devise/rails/routes.rb +2 -0
  74. data/lib/devise/rails/warden_compat.rb +2 -0
  75. data/lib/devise/rails.rb +5 -1
  76. data/lib/devise/strategies/authenticatable.rb +2 -0
  77. data/lib/devise/strategies/base.rb +2 -0
  78. data/lib/devise/strategies/database_authenticatable.rb +2 -0
  79. data/lib/devise/strategies/rememberable.rb +2 -0
  80. data/lib/devise/test/controller_helpers.rb +3 -0
  81. data/lib/devise/test/integration_helpers.rb +2 -0
  82. data/lib/devise/test_helpers.rb +2 -0
  83. data/lib/devise/time_inflector.rb +2 -0
  84. data/lib/devise/token_generator.rb +2 -0
  85. data/lib/devise/version.rb +3 -1
  86. data/lib/devise.rb +3 -1
  87. data/lib/generators/active_record/devise_generator.rb +15 -2
  88. data/lib/generators/active_record/templates/migration.rb +3 -1
  89. data/lib/generators/active_record/templates/migration_existing.rb +2 -0
  90. data/lib/generators/devise/controllers_generator.rb +2 -0
  91. data/lib/generators/devise/devise_generator.rb +4 -2
  92. data/lib/generators/devise/install_generator.rb +2 -0
  93. data/lib/generators/devise/orm_helpers.rb +7 -1
  94. data/lib/generators/devise/views_generator.rb +7 -8
  95. data/lib/generators/mongoid/devise_generator.rb +2 -0
  96. data/lib/generators/templates/controllers/confirmations_controller.rb +2 -0
  97. data/lib/generators/templates/controllers/omniauth_callbacks_controller.rb +2 -0
  98. data/lib/generators/templates/controllers/passwords_controller.rb +2 -0
  99. data/lib/generators/templates/controllers/registrations_controller.rb +2 -0
  100. data/lib/generators/templates/controllers/sessions_controller.rb +2 -0
  101. data/lib/generators/templates/controllers/unlocks_controller.rb +2 -0
  102. data/lib/generators/templates/devise.rb +6 -0
  103. data/test/controllers/custom_registrations_controller_test.rb +2 -0
  104. data/test/controllers/custom_strategy_test.rb +2 -0
  105. data/test/controllers/helper_methods_test.rb +2 -0
  106. data/test/controllers/helpers_test.rb +2 -0
  107. data/test/controllers/inherited_controller_i18n_messages_test.rb +2 -0
  108. data/test/controllers/internal_helpers_test.rb +2 -0
  109. data/test/controllers/load_hooks_controller_test.rb +2 -0
  110. data/test/controllers/passwords_controller_test.rb +2 -0
  111. data/test/controllers/sessions_controller_test.rb +2 -0
  112. data/test/controllers/url_helpers_test.rb +2 -0
  113. data/test/delegator_test.rb +2 -0
  114. data/test/devise_test.rb +2 -0
  115. data/test/failure_app_test.rb +2 -0
  116. data/test/generators/active_record_generator_test.rb +47 -0
  117. data/test/generators/controllers_generator_test.rb +2 -0
  118. data/test/generators/devise_generator_test.rb +2 -0
  119. data/test/generators/install_generator_test.rb +2 -0
  120. data/test/generators/mongoid_generator_test.rb +2 -0
  121. data/test/generators/views_generator_test.rb +2 -0
  122. data/test/helpers/devise_helper_test.rb +2 -0
  123. data/test/integration/authenticatable_test.rb +9 -1
  124. data/test/integration/confirmable_test.rb +2 -0
  125. data/test/integration/database_authenticatable_test.rb +2 -0
  126. data/test/integration/http_authenticatable_test.rb +8 -0
  127. data/test/integration/lockable_test.rb +5 -3
  128. data/test/integration/mounted_engine_test.rb +2 -0
  129. data/test/integration/omniauthable_test.rb +13 -0
  130. data/test/integration/recoverable_test.rb +2 -0
  131. data/test/integration/registerable_test.rb +2 -0
  132. data/test/integration/rememberable_test.rb +3 -1
  133. data/test/integration/timeoutable_test.rb +2 -0
  134. data/test/integration/trackable_test.rb +7 -0
  135. data/test/mailers/confirmation_instructions_test.rb +2 -0
  136. data/test/mailers/email_changed_test.rb +2 -0
  137. data/test/mailers/mailer_test.rb +2 -0
  138. data/test/mailers/reset_password_instructions_test.rb +2 -0
  139. data/test/mailers/unlock_instructions_test.rb +2 -0
  140. data/test/mapping_test.rb +2 -0
  141. data/test/models/authenticatable_test.rb +2 -0
  142. data/test/models/confirmable_test.rb +13 -0
  143. data/test/models/database_authenticatable_test.rb +2 -0
  144. data/test/models/lockable_test.rb +2 -0
  145. data/test/models/omniauthable_test.rb +2 -0
  146. data/test/models/recoverable_test.rb +2 -0
  147. data/test/models/registerable_test.rb +2 -0
  148. data/test/models/rememberable_test.rb +2 -0
  149. data/test/models/serializable_test.rb +6 -0
  150. data/test/models/timeoutable_test.rb +2 -0
  151. data/test/models/trackable_test.rb +21 -0
  152. data/test/models/validatable_test.rb +4 -2
  153. data/test/models_test.rb +2 -0
  154. data/test/omniauth/config_test.rb +2 -0
  155. data/test/omniauth/url_helpers_test.rb +2 -0
  156. data/test/orm/active_record.rb +8 -1
  157. data/test/orm/mongoid.rb +3 -1
  158. data/test/parameter_sanitizer_test.rb +2 -0
  159. data/test/rails_app/app/active_record/admin.rb +2 -0
  160. data/test/rails_app/app/active_record/shim.rb +2 -0
  161. data/test/rails_app/app/active_record/user.rb +13 -0
  162. data/test/rails_app/app/active_record/user_on_engine.rb +2 -0
  163. data/test/rails_app/app/active_record/user_on_main_app.rb +2 -0
  164. data/test/rails_app/app/active_record/user_with_validations.rb +12 -0
  165. data/test/rails_app/app/active_record/user_without_email.rb +2 -0
  166. data/test/rails_app/app/controllers/admins/sessions_controller.rb +2 -0
  167. data/test/rails_app/app/controllers/admins_controller.rb +2 -0
  168. data/test/rails_app/app/controllers/application_controller.rb +2 -0
  169. data/test/rails_app/app/controllers/application_with_fake_engine.rb +2 -0
  170. data/test/rails_app/app/controllers/custom/registrations_controller.rb +2 -0
  171. data/test/rails_app/app/controllers/home_controller.rb +2 -0
  172. data/test/rails_app/app/controllers/publisher/registrations_controller.rb +2 -0
  173. data/test/rails_app/app/controllers/publisher/sessions_controller.rb +2 -0
  174. data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +2 -0
  175. data/test/rails_app/app/controllers/users_controller.rb +2 -0
  176. data/test/rails_app/app/helpers/application_helper.rb +2 -0
  177. data/test/rails_app/app/mailers/users/from_proc_mailer.rb +2 -0
  178. data/test/rails_app/app/mailers/users/mailer.rb +2 -0
  179. data/test/rails_app/app/mailers/users/reply_to_mailer.rb +2 -0
  180. data/test/rails_app/app/mongoid/admin.rb +2 -0
  181. data/test/rails_app/app/mongoid/shim.rb +2 -0
  182. data/test/rails_app/app/mongoid/user.rb +11 -0
  183. data/test/rails_app/app/mongoid/user_on_engine.rb +2 -0
  184. data/test/rails_app/app/mongoid/user_on_main_app.rb +2 -0
  185. data/test/rails_app/app/mongoid/user_with_validations.rb +37 -0
  186. data/test/rails_app/app/mongoid/user_without_email.rb +2 -0
  187. data/test/rails_app/config/application.rb +6 -2
  188. data/test/rails_app/config/boot.rb +8 -1
  189. data/test/rails_app/config/environment.rb +2 -0
  190. data/test/rails_app/config/environments/development.rb +2 -0
  191. data/test/rails_app/config/environments/production.rb +2 -0
  192. data/test/rails_app/config/environments/test.rb +2 -0
  193. data/test/rails_app/config/initializers/backtrace_silencers.rb +2 -0
  194. data/test/rails_app/config/initializers/devise.rb +2 -0
  195. data/test/rails_app/config/initializers/inflections.rb +2 -0
  196. data/test/rails_app/config/initializers/secret_token.rb +2 -0
  197. data/test/rails_app/config/initializers/session_store.rb +2 -0
  198. data/test/rails_app/config/routes.rb +2 -0
  199. data/test/rails_app/db/migrate/20100401102949_create_tables.rb +2 -0
  200. data/test/rails_app/db/schema.rb +2 -0
  201. data/test/rails_app/lib/shared_admin.rb +2 -0
  202. data/test/rails_app/lib/shared_user.rb +2 -0
  203. data/test/rails_app/lib/shared_user_without_email.rb +2 -0
  204. data/test/rails_app/lib/shared_user_without_omniauth.rb +2 -0
  205. data/test/rails_test.rb +2 -0
  206. data/test/routes_test.rb +2 -0
  207. data/test/support/action_controller/record_identifier.rb +2 -0
  208. data/test/support/assertions.rb +2 -0
  209. data/test/support/helpers.rb +6 -0
  210. data/test/support/http_method_compatibility.rb +2 -0
  211. data/test/support/integration.rb +3 -0
  212. data/test/support/webrat/integrations/rails.rb +2 -0
  213. data/test/test/controller_helpers_test.rb +8 -1
  214. data/test/test/integration_helpers_test.rb +2 -0
  215. data/test/test_helper.rb +2 -0
  216. data/test/test_models.rb +2 -0
  217. metadata +12 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0b580a525adc8af746c4f2f2c22f337f5a605bde
4
- data.tar.gz: e39fc8ecd5b3119f79d3f303889d204762d9248c
2
+ SHA256:
3
+ metadata.gz: 60bd05360518797bb4629043a79443df1cda69f8ecf6a9e5c438965633a2fc5d
4
+ data.tar.gz: c88ccfabc928715741dd7a1a578f3141bb4efc735ccbf3eab632bb5bb54fff6b
5
5
  SHA512:
6
- metadata.gz: 62ee6bfb4250f0d9af472a00f9ed0937dc9f7526acc97e5012c2c930fb15447f449aa881a1382e73d3b38bb68f7b4410b184c4135959b8c6beb369d35e745fce
7
- data.tar.gz: acfb853f1006f573987367481929057a28433fbfab1b731bea10f858fa9343ef85dbb3cdccea3f151389357141a6d2c5425b79419df4ba6926e75161117c90ab
6
+ metadata.gz: 86ca92c1d39d9637275094019bb4e501813d230d713f0561e71375a43ccf037b1738c2ff109dcb1734ed566b18ce43a7af0324ae5ba3714551a7eec895bba9a1
7
+ data.tar.gz: 81aa8a1bf2681f1968c6ffb925c33012ccd9bc276ecfe8369942b40a64a9952e5bacec08295237be3d48e9193e06fe7e6ab68b821a0b4a2e65bf0175de0d9172
data/.travis.yml CHANGED
@@ -2,13 +2,15 @@ language: ruby
2
2
 
3
3
  rvm:
4
4
  - 2.1.10
5
- - 2.2.7
6
- - 2.3.4
7
- - 2.4.1
5
+ - 2.2.8
6
+ - 2.3.5
7
+ - 2.4.2
8
+ - 2.5.0
8
9
  - ruby-head
9
10
 
10
11
  gemfile:
11
12
  - Gemfile
13
+ - gemfiles/Gemfile.rails-5.2-rc1
12
14
  - gemfiles/Gemfile.rails-5.0-stable
13
15
  - gemfiles/Gemfile.rails-4.2-stable
14
16
  - gemfiles/Gemfile.rails-4.1-stable
@@ -17,7 +19,11 @@ matrix:
17
19
  exclude:
18
20
  - rvm: 2.1.10
19
21
  gemfile: Gemfile
20
- - rvm: 2.4.1
22
+ - rvm: 2.1.10
23
+ gemfile: gemfiles/Gemfile.rails-5.2-rc1
24
+ - rvm: 2.5.0
25
+ gemfile: gemfiles/Gemfile.rails-4.1-stable
26
+ - rvm: 2.4.2
21
27
  gemfile: gemfiles/Gemfile.rails-4.1-stable
22
28
  - rvm: ruby-head
23
29
  gemfile: gemfiles/Gemfile.rails-4.1-stable
@@ -29,6 +35,8 @@ matrix:
29
35
  gemfile: Gemfile
30
36
  - env: DEVISE_ORM=mongoid
31
37
  gemfile: gemfiles/Gemfile.rails-5.0-stable
38
+ - env: DEVISE_ORM=mongoid
39
+ gemfile: gemfiles/Gemfile.rails-5.2-rc1
32
40
  allow_failures:
33
41
  - rvm: ruby-head
34
42
  services:
@@ -43,7 +51,9 @@ env:
43
51
  - DEVISE_ORM=active_record
44
52
  - DEVISE_ORM=mongoid
45
53
 
46
- before_install: "rm ${BUNDLE_GEMFILE}.lock"
54
+ before_install:
55
+ - "rm ${BUNDLE_GEMFILE}.lock"
56
+ - gem update --system
47
57
 
48
58
  before_script: "bundle update"
49
59
 
data/CHANGELOG.md CHANGED
@@ -1,3 +1,44 @@
1
+ ### Unreleased
2
+
3
+ ### 4.4.2 - 2018-03-15
4
+
5
+ * enhancements
6
+ * Support for :credentials on Rails v5.2.x. (by @gencer)
7
+ * Improve documentation about the test suite. (by @tegon)
8
+ * Test with Rails 5.2.rc1 on Travis. (by @jcoyne)
9
+ * Allow test with Rails 6. (by @Fudoshiki)
10
+ * Creating a new section for controller configuration on `devise.rb` template (by @Danilo-Araujo-Silva)
11
+
12
+ * bug fixes
13
+ * Preserve content_type for unauthenticated tests (by @gmcnaughton)
14
+ * Check if the resource is persisted in `update_tracked_fields!` instead of performing validations (by @tegon)
15
+ * Revert "Replace log_process_action to append_info_to_payload" (by @tegon)
16
+
17
+ ### 4.4.1 - 2018-01-23
18
+
19
+ * bug fixes
20
+ * Ensure Gemspec is loaded as utf-8. (by @segiddins)
21
+ * Fix `ActiveRecord` check on `Confirmable`. (by @tegon)
22
+ * Fix `signed_in?` docs without running auth hooks. by (@machty)
23
+
24
+ ### 4.4.0 - 2017-12-29
25
+
26
+ * enhancements
27
+ * Add `frozen_string_literal` pragma comment to all Ruby files. (by @pat)
28
+ * Use `set_flash_method!` instead of `set_flash_method` in `Devise::OmniauthCallbacksController#failure`. (by @saichander17)
29
+ * Clarify how `store_location_for` modifies URIs. (by @olivierlacan)
30
+ * Move `failed_attempts` increment into its own function. by (@mobilutz)
31
+ * Add `autocomplete="email"` to email fields. by (@MikeRogers0)
32
+ * Add the ability to change the default migrations path introduced in Rails 5.0.3. (by @alexhifer)
33
+ * Delete unnecessary condition for helper method. (by @davydovanton)
34
+ * Support `id: :uuid` option for migrations. (by @filip373)
35
+
36
+ * bug fixes
37
+ * Fix syntax for MRI 2.5.0. (by @pat)
38
+ * Validations were being ignored on singup in the `Trackable#update_tracked_fields!` method. (by @AshleyFoster)
39
+ * Do not modify options for `#serializable_hash`. (by @guigs)
40
+ * Email confirmations were being sent on sign in/sign out for application using `mongoid` and `mongoid-paperclip` gems. This is because previously we were checking if a model is from Active Record by checking if the method `after_commit` was defined - since `mongoid` doesn' have one - but `mongoid-paperclip` gem does define one, which cause this issue. (by @fjg)
41
+
1
42
  ### 4.3.0 - 2017-05-14
2
43
 
3
44
  * Enhancements
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  gemspec
@@ -14,9 +16,6 @@ gem "rails-controller-testing"
14
16
 
15
17
  gem "responders", "~> 2.1"
16
18
 
17
- # TODO: Remove this line when Rails 5.1.1 is released
18
- gem "minitest", "< 5.10.2"
19
-
20
19
  group :test do
21
20
  gem "omniauth-facebook"
22
21
  gem "omniauth-openid"
data/Gemfile.lock CHANGED
@@ -10,10 +10,10 @@ GIT
10
10
  PATH
11
11
  remote: .
12
12
  specs:
13
- devise (4.3.0)
13
+ devise (4.4.2)
14
14
  bcrypt (~> 3.0)
15
15
  orm_adapter (~> 0.1)
16
- railties (>= 4.1.0, < 5.2)
16
+ railties (>= 4.1.0, < 6.0)
17
17
  responders
18
18
  warden (~> 1.2.3)
19
19
 
@@ -176,7 +176,6 @@ DEPENDENCIES
176
176
  activerecord-jdbcsqlite3-adapter
177
177
  devise!
178
178
  jruby-openssl
179
- minitest (< 5.10.2)
180
179
  mocha (~> 1.1)
181
180
  oauth2
182
181
  omniauth (~> 1.3)
@@ -191,4 +190,4 @@ DEPENDENCIES
191
190
  webrat (= 0.7.3)
192
191
 
193
192
  BUNDLED WITH
194
- 1.14.6
193
+ 1.16.0
data/ISSUE_TEMPLATE.md ADDED
@@ -0,0 +1,19 @@
1
+ ## Precheck
2
+
3
+ - Do not use the issues tracker for help or support, try Stack Overflow.
4
+ - For bugs, do a quick search and make sure the bug has not yet been reported
5
+ - Finally, be nice and have fun!
6
+
7
+ ## Environment
8
+
9
+ - Ruby **[version]**
10
+ - Rails **[version]**
11
+ - Devise **[version]**
12
+
13
+ ## Current behavior
14
+
15
+ Include code samples, errors, steps to reproduce the error and stacktraces if appropriate.
16
+
17
+ Will be even more helpful if you provide a sample application or a test case that reproduces the error.
18
+
19
+ ## Expected behavior
data/README.md CHANGED
@@ -27,6 +27,50 @@ It's composed of 10 modules:
27
27
  * [Validatable](http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/Validatable): provides validations of email and password. It's optional and can be customized, so you're able to define your own validations.
28
28
  * [Lockable](http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/Lockable): locks an account after a specified number of failed sign-in attempts. Can unlock via email or after a specified time period.
29
29
 
30
+ ## Table of Contents
31
+
32
+ <!-- TOC depthFrom:1 depthTo:6 withLinks:1 orderedList:0 -->
33
+
34
+ - [Information](#information)
35
+ - [The Devise wiki](#the-devise-wiki)
36
+ - [Bug reports](#bug-reports)
37
+ - [StackOverflow and Mailing List](#stackoverflow-and-mailing-list)
38
+ - [RDocs](#rdocs)
39
+ - [Example applications](#example-applications)
40
+ - [Extensions](#extensions)
41
+ - [Contributing](#contributing)
42
+ - [Starting with Rails?](#starting-with-rails)
43
+ - [Getting started](#getting-started)
44
+ - [Controller filters and helpers](#controller-filters-and-helpers)
45
+ - [Configuring Models](#configuring-models)
46
+ - [Strong Parameters](#strong-parameters)
47
+ - [Configuring views](#configuring-views)
48
+ - [Configuring controllers](#configuring-controllers)
49
+ - [Configuring routes](#configuring-routes)
50
+ - [I18n](#i18n)
51
+ - [Test helpers](#test-helpers)
52
+ - [Controller tests](#controller-tests)
53
+ - [Integration tests](#integration-tests)
54
+ - [OmniAuth](#omniauth)
55
+ - [Configuring multiple models](#configuring-multiple-models)
56
+ - [Create a migration with the required fields](#create-a-migration-with-the-required-fields)
57
+ - [Inside your Admin model](#inside-your-admin-model)
58
+ - [Inside your routes](#inside-your-routes)
59
+ - [Inside your protected controller](#inside-your-protected-controller)
60
+ - [Inside your controllers and views](#inside-your-controllers-and-views)
61
+ - [ActiveJob Integration](#activejob-integration)
62
+ - [Password reset tokens and Rails logs](#password-reset-tokens-and-rails-logs)
63
+ - [Other ORMs](#other-orms)
64
+ - [Additional information](#additional-information)
65
+ - [Heroku](#heroku)
66
+ - [Warden](#warden)
67
+ - [Contributors](#contributors)
68
+ - [License](#license)
69
+
70
+ <!-- /TOC -->
71
+
72
+
73
+
30
74
  ## Information
31
75
 
32
76
  ### The Devise wiki
@@ -79,7 +123,36 @@ We hope that you will consider contributing to Devise. Please read this short ov
79
123
 
80
124
  https://github.com/plataformatec/devise/wiki/Contributing
81
125
 
82
- You will usually want to write tests for your changes. To run the test suite, go into Devise's top-level directory and run "bundle install" and "rake". For the tests to pass, you will need to have a MongoDB server (version 2.0 or newer) running on your system.
126
+ You will usually want to write tests for your changes. To run the test suite, go into Devise's top-level directory and run `bundle install` and `bin/test`.
127
+ Devise works with multiple Ruby and Rails versions, and ActiveRecord and Mongoid ORMs, which means you can run the test suite with some modifiers: `DEVISE_ORM` and `BUNDLE_GEMFILE`.
128
+
129
+ ### DEVISE_ORM
130
+ Since Devise support both Mongoid and ActiveRecord, we rely on this variable to run specific code for each ORM.
131
+ The default value of `DEVISE_ORM` is `active_record`. To run the tests for mongoid, you can pass `mongoid`:
132
+ ```
133
+ DEVISE_ORM=mongoid bin/test
134
+
135
+ ==> Devise.orm = :mongoid
136
+ ```
137
+ When running the tests for Mongoid, you will need to have a MongoDB server (version 2.0 or newer) running on your system.
138
+
139
+ Please note that the command output will show the variable value being used.
140
+
141
+ ### BUNDLE_GEMFILE
142
+ We can use this variable to tell bundler what Gemfile it should use (instead of the one in the current directory).
143
+ Inside the [gemfiles](https://github.com/plataformatec/devise/tree/master/gemfiles) directory, we have one for each version of Rails we support. When you send us a pull request, it may happen that the test suite brakes on Travis using some of them. If that's the case, you can simulate the same environment using the `BUNDLE_GEMFILE` variable.
144
+ For example, if the tests broke using Ruby 2.4.2 and Rails 4.1, you can do the following:
145
+ ```bash
146
+ rbenv shell 2.4.2 # or rvm use 2.4.2
147
+ BUNDLE_GEMFILE=gemfiles/Gemfile.rails-4.1-stable bundle install
148
+ BUNDLE_GEMFILE=gemfiles/Gemfile.rails-4.1-stable bin/test
149
+ ```
150
+
151
+ You can also combine both of them if the tests broke for Mongoid:
152
+ ```bash
153
+ BUNDLE_GEMFILE=gemfiles/Gemfile.rails-4.1-stable bundle install
154
+ BUNDLE_GEMFILE=gemfiles/Gemfile.rails-4.1-stable DEVISE_ORM=mongoid bin/test
155
+ ```
83
156
 
84
157
  ## Starting with Rails?
85
158
 
@@ -126,7 +199,7 @@ Next, check the MODEL for any additional configuration options you might want to
126
199
 
127
200
  Then run `rails db:migrate`
128
201
 
129
- You should restart your application after changing Devise's configuration options. Otherwise, you will run into strange errors, for example, users being unable to login and route helpers being undefined.
202
+ You should restart your application after changing Devise's configuration options (this includes stopping spring). Otherwise, you will run into strange errors, for example, users being unable to login and route helpers being undefined.
130
203
 
131
204
  ### Controller filters and helpers
132
205
 
@@ -216,7 +289,21 @@ class ApplicationController < ActionController::Base
216
289
  end
217
290
  ```
218
291
 
219
- The above works for any additional fields where the parameters are simple scalar types. If you have nested attributes (say you're using `accepts_nested_attributes_for`), then you will need to tell devise about those nestings and types. Devise allows you to completely change Devise defaults or invoke custom behaviour by passing a block:
292
+ The above works for any additional fields where the parameters are simple scalar types. If you have nested attributes (say you're using `accepts_nested_attributes_for`), then you will need to tell devise about those nestings and types:
293
+
294
+ ```ruby
295
+ class ApplicationController < ActionController::Base
296
+ before_action :configure_permitted_parameters, if: :devise_controller?
297
+
298
+ protected
299
+
300
+ def configure_permitted_parameters
301
+ devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, address_attributes: [:country, :state, :city, :area, :postal_code]])
302
+ end
303
+ end
304
+ ```
305
+
306
+ Devise allows you to completely change Devise defaults or invoke custom behaviour by passing a block:
220
307
 
221
308
  To permit simple scalar values for username and email, use this
222
309
 
@@ -374,6 +461,12 @@ end
374
461
 
375
462
  This way, you tell Devise to use the scope `:user` when "/sign_in" is accessed. Notice `devise_scope` is also aliased as `as` in your router.
376
463
 
464
+ Please note: You will still need to add `devise_for` in your routes in order to use helper methods such as `current_user`.
465
+
466
+ ```ruby
467
+ devise_for :users, skip: :all
468
+ ```
469
+
377
470
  ### I18n
378
471
 
379
472
  Devise uses flash messages with I18n, in conjunction with the flash keys :notice and :alert. To customize your app, you can set up your locale file:
@@ -610,6 +703,6 @@ https://github.com/plataformatec/devise/graphs/contributors
610
703
 
611
704
  ## License
612
705
 
613
- MIT License. Copyright 2009-2017 Plataformatec. http://plataformatec.com.br
706
+ MIT License. Copyright 2009-2018 Plataformatec. http://plataformatec.com.br
614
707
 
615
708
  You are not granted rights or licenses to the trademarks of Plataformatec, including without limitation the Devise name or logo.
data/Rakefile CHANGED
@@ -1,4 +1,5 @@
1
1
  # encoding: UTF-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/gem_tasks'
4
5
  require 'rake/testtask'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Devise::ConfirmationsController < DeviseController
2
4
  # GET /resource/confirmation/new
3
5
  def new
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Devise::OmniauthCallbacksController < DeviseController
2
4
  prepend_before_action { request.env["devise.skip_timeout"] = true }
3
5
 
@@ -6,7 +8,7 @@ class Devise::OmniauthCallbacksController < DeviseController
6
8
  end
7
9
 
8
10
  def failure
9
- set_flash_message :alert, :failure, kind: OmniAuth::Utils.camelize(failed_strategy.name), reason: failure_message
11
+ set_flash_message! :alert, :failure, kind: OmniAuth::Utils.camelize(failed_strategy.name), reason: failure_message
10
12
  redirect_to after_omniauth_failure_path_for(resource_name)
11
13
  end
12
14
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Devise::PasswordsController < DeviseController
2
4
  prepend_before_action :require_no_authentication
3
5
  # Render the #edit only if coming from a reset password email link
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Devise::RegistrationsController < DeviseController
2
4
  prepend_before_action :require_no_authentication, only: [:new, :create, :cancel]
3
5
  prepend_before_action :authenticate_scope!, only: [:edit, :update, :destroy]
@@ -5,7 +7,7 @@ class Devise::RegistrationsController < DeviseController
5
7
 
6
8
  # GET /resource/sign_up
7
9
  def new
8
- build_resource({})
10
+ build_resource
9
11
  yield resource if block_given?
10
12
  respond_with resource
11
13
  end
@@ -97,8 +99,8 @@ class Devise::RegistrationsController < DeviseController
97
99
 
98
100
  # Build a devise resource passing in the session. Useful to move
99
101
  # temporary session data to the newly created user.
100
- def build_resource(hash=nil)
101
- self.resource = resource_class.new_with_session(hash || {}, session)
102
+ def build_resource(hash = {})
103
+ self.resource = resource_class.new_with_session(hash, session)
102
104
  end
103
105
 
104
106
  # Signs in a user on sign up. You can overwrite this method in your own
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Devise::SessionsController < DeviseController
2
4
  prepend_before_action :require_no_authentication, only: [:new, :create]
3
5
  prepend_before_action :allow_params_authentication!, only: :create
4
6
  prepend_before_action :verify_signed_out_user, only: :destroy
5
- prepend_before_action only: [:create, :destroy] { request.env["devise.skip_timeout"] = true }
7
+ prepend_before_action(only: [:create, :destroy]) { request.env["devise.skip_timeout"] = true }
6
8
 
7
9
  # GET /resource/sign_in
8
10
  def new
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Devise::UnlocksController < DeviseController
2
4
  prepend_before_action :require_no_authentication
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # All Devise controllers are inherited from here.
2
4
  class DeviseController < Devise.parent_controller.constantize
3
5
  include Devise::Controllers::ScopedViews
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module DeviseHelper
2
4
  # A simple way to show error messages for the current devise resource. If you need
3
5
  # to customize this method, you can either overwrite it in your application helpers or
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  if defined?(ActionMailer)
2
4
  class Devise::Mailer < Devise.parent_mailer.constantize
3
5
  include Devise::Mailers::Helpers
@@ -5,7 +5,7 @@
5
5
 
6
6
  <div class="field">
7
7
  <%= f.label :email %><br />
8
- <%= f.email_field :email, autofocus: true, value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email) %>
8
+ <%= f.email_field :email, autofocus: true, autocomplete: "email", value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email) %>
9
9
  </div>
10
10
 
11
11
  <div class="actions">
@@ -5,7 +5,7 @@
5
5
 
6
6
  <div class="field">
7
7
  <%= f.label :email %><br />
8
- <%= f.email_field :email, autofocus: true %>
8
+ <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
9
9
  </div>
10
10
 
11
11
  <div class="actions">
@@ -5,7 +5,7 @@
5
5
 
6
6
  <div class="field">
7
7
  <%= f.label :email %><br />
8
- <%= f.email_field :email, autofocus: true %>
8
+ <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
9
9
  </div>
10
10
 
11
11
  <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
@@ -5,7 +5,7 @@
5
5
 
6
6
  <div class="field">
7
7
  <%= f.label :email %><br />
8
- <%= f.email_field :email, autofocus: true %>
8
+ <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
9
9
  </div>
10
10
 
11
11
  <div class="field">
@@ -3,7 +3,7 @@
3
3
  <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
4
4
  <div class="field">
5
5
  <%= f.label :email %><br />
6
- <%= f.email_field :email, autofocus: true %>
6
+ <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
7
7
  </div>
8
8
 
9
9
  <div class="field">
@@ -5,7 +5,7 @@
5
5
 
6
6
  <div class="field">
7
7
  <%= f.label :email %><br />
8
- <%= f.email_field :email, autofocus: true %>
8
+ <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
9
9
  </div>
10
10
 
11
11
  <div class="actions">
data/devise.gemspec CHANGED
@@ -1,4 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
2
4
  $:.push File.expand_path("../lib", __FILE__)
3
5
  require "devise/version"
4
6
 
@@ -21,6 +23,6 @@ Gem::Specification.new do |s|
21
23
  s.add_dependency("warden", "~> 1.2.3")
22
24
  s.add_dependency("orm_adapter", "~> 0.1")
23
25
  s.add_dependency("bcrypt", "~> 3.0")
24
- s.add_dependency("railties", ">= 4.1.0", "< 5.2")
26
+ s.add_dependency("railties", ">= 4.1.0", "< 6.0")
25
27
  s.add_dependency("responders")
26
28
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  gemspec path: ".."
@@ -5,7 +7,7 @@ gemspec path: ".."
5
7
  gem "rails", github: "rails/rails", branch: "4-1-stable"
6
8
  gem "omniauth"
7
9
  gem "omniauth-oauth2"
8
- gem "rdoc"
10
+ gem "rdoc", "~> 5.1"
9
11
 
10
12
  group :test do
11
13
  gem "omniauth-facebook"
@@ -21,10 +21,10 @@ GIT
21
21
  PATH
22
22
  remote: ..
23
23
  specs:
24
- devise (4.3.0)
24
+ devise (4.4.2)
25
25
  bcrypt (~> 3.0)
26
26
  orm_adapter (~> 0.1)
27
- railties (>= 4.1.0, < 5.2)
27
+ railties (>= 4.1.0, < 6.0)
28
28
  responders
29
29
  warden (~> 1.2.3)
30
30
 
@@ -162,10 +162,10 @@ DEPENDENCIES
162
162
  omniauth-oauth2
163
163
  omniauth-openid
164
164
  rails!
165
- rdoc
165
+ rdoc (~> 5.1)
166
166
  sqlite3
167
167
  test_after_commit
168
168
  webrat (= 0.7.3)
169
169
 
170
170
  BUNDLED WITH
171
- 1.14.6
171
+ 1.16.0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  gemspec path: ".."
@@ -5,7 +7,7 @@ gemspec path: ".."
5
7
  gem "rails", github: "rails/rails", branch: "4-2-stable"
6
8
  gem "omniauth"
7
9
  gem "omniauth-oauth2"
8
- gem "rdoc"
10
+ gem "rdoc", "~> 5.1"
9
11
 
10
12
  group :test do
11
13
  gem "omniauth-facebook"
@@ -57,10 +57,10 @@ GIT
57
57
  PATH
58
58
  remote: ..
59
59
  specs:
60
- devise (4.3.0)
60
+ devise (4.4.2)
61
61
  bcrypt (~> 3.0)
62
62
  orm_adapter (~> 0.1)
63
- railties (>= 4.1.0, < 5.2)
63
+ railties (>= 4.1.0, < 6.0)
64
64
  responders
65
65
  warden (~> 1.2.3)
66
66
 
@@ -183,10 +183,10 @@ DEPENDENCIES
183
183
  omniauth-oauth2
184
184
  omniauth-openid
185
185
  rails!
186
- rdoc
186
+ rdoc (~> 5.1)
187
187
  sqlite3
188
188
  test_after_commit
189
189
  webrat (= 0.7.3)
190
190
 
191
191
  BUNDLED WITH
192
- 1.14.6
192
+ 1.16.0
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
5
  gemspec path: ".."
@@ -13,9 +15,6 @@ gem "rails-controller-testing"
13
15
 
14
16
  gem "responders", "~> 2.1"
15
17
 
16
- # TODO: Remove this line when Rails 5.0.3 is released
17
- gem "minitest", "< 5.10.2"
18
-
19
18
  group :test do
20
19
  gem "omniauth-facebook"
21
20
  gem "omniauth-openid"
@@ -10,10 +10,10 @@ GIT
10
10
  PATH
11
11
  remote: ..
12
12
  specs:
13
- devise (4.3.0)
13
+ devise (4.4.2)
14
14
  bcrypt (~> 3.0)
15
15
  orm_adapter (~> 0.1)
16
- railties (>= 4.1.0, < 5.2)
16
+ railties (>= 4.1.0, < 6.0)
17
17
  responders
18
18
  warden (~> 1.2.3)
19
19
 
@@ -175,7 +175,6 @@ PLATFORMS
175
175
  DEPENDENCIES
176
176
  activemodel-serializers-xml!
177
177
  devise!
178
- minitest (< 5.10.2)
179
178
  mocha (~> 1.1)
180
179
  omniauth
181
180
  omniauth-facebook
@@ -190,4 +189,4 @@ DEPENDENCIES
190
189
  webrat (= 0.7.3)
191
190
 
192
191
  BUNDLED WITH
193
- 1.14.6
192
+ 1.16.0
@@ -0,0 +1,26 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec path: ".."
4
+
5
+ gem "rails", '~> 5.2.0.rc1'
6
+ gem "omniauth"
7
+ gem "omniauth-oauth2"
8
+ gem "rdoc"
9
+
10
+ gem "activemodel-serializers-xml", github: "rails/activemodel-serializers-xml"
11
+
12
+ gem "rails-controller-testing"
13
+
14
+ gem "responders", "~> 2.1"
15
+
16
+ group :test do
17
+ gem "omniauth-facebook"
18
+ gem "omniauth-openid"
19
+ gem "webrat", "0.7.3", require: false
20
+ gem "mocha", "~> 1.1", require: false
21
+ gem 'test_after_commit', require: false
22
+ end
23
+
24
+ platforms :ruby do
25
+ gem "sqlite3"
26
+ end