loyal_devise 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (208) hide show
  1. data/.gitignore +10 -0
  2. data/.travis.yml +15 -0
  3. data/CHANGELOG.rdoc +881 -0
  4. data/CONTRIBUTING.md +12 -0
  5. data/Gemfile +31 -0
  6. data/Gemfile.lock +154 -0
  7. data/MIT-LICENSE +20 -0
  8. data/README.md +388 -0
  9. data/Rakefile +34 -0
  10. data/app/controllers/devise/confirmations_controller.rb +44 -0
  11. data/app/controllers/devise/omniauth_callbacks_controller.rb +31 -0
  12. data/app/controllers/devise/passwords_controller.rb +57 -0
  13. data/app/controllers/devise/registrations_controller.rb +120 -0
  14. data/app/controllers/devise/sessions_controller.rb +51 -0
  15. data/app/controllers/devise/unlocks_controller.rb +45 -0
  16. data/app/controllers/devise_controller.rb +193 -0
  17. data/app/helpers/devise_helper.rb +26 -0
  18. data/app/mailers/devise/mailer.rb +16 -0
  19. data/app/views/devise/_links.erb +3 -0
  20. data/app/views/devise/confirmations/new.html.erb +12 -0
  21. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  22. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  23. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  24. data/app/views/devise/passwords/edit.html.erb +16 -0
  25. data/app/views/devise/passwords/new.html.erb +12 -0
  26. data/app/views/devise/registrations/edit.html.erb +25 -0
  27. data/app/views/devise/registrations/new.html.erb +18 -0
  28. data/app/views/devise/sessions/new.html.erb +17 -0
  29. data/app/views/devise/shared/_links.erb +25 -0
  30. data/app/views/devise/unlocks/new.html.erb +12 -0
  31. data/config/locales/en.yml +59 -0
  32. data/devise.gemspec +26 -0
  33. data/gemfiles/Gemfile.rails-3.1.x +35 -0
  34. data/gemfiles/Gemfile.rails-3.1.x.lock +167 -0
  35. data/lib/devise/controllers/helpers.rb +273 -0
  36. data/lib/devise/controllers/rememberable.rb +53 -0
  37. data/lib/devise/controllers/scoped_views.rb +18 -0
  38. data/lib/devise/controllers/url_helpers.rb +68 -0
  39. data/lib/devise/delegator.rb +17 -0
  40. data/lib/devise/failure_app.rb +188 -0
  41. data/lib/devise/hooks/activatable.rb +12 -0
  42. data/lib/devise/hooks/forgetable.rb +10 -0
  43. data/lib/devise/hooks/lockable.rb +8 -0
  44. data/lib/devise/hooks/rememberable.rb +7 -0
  45. data/lib/devise/hooks/timeoutable.rb +26 -0
  46. data/lib/devise/hooks/trackable.rb +10 -0
  47. data/lib/devise/mailers/helpers.rb +92 -0
  48. data/lib/devise/mapping.rb +173 -0
  49. data/lib/devise/models/authenticatable.rb +269 -0
  50. data/lib/devise/models/confirmable.rb +271 -0
  51. data/lib/devise/models/database_authenticatable.rb +127 -0
  52. data/lib/devise/models/lockable.rb +194 -0
  53. data/lib/devise/models/omniauthable.rb +28 -0
  54. data/lib/devise/models/recoverable.rb +141 -0
  55. data/lib/devise/models/registerable.rb +26 -0
  56. data/lib/devise/models/rememberable.rb +126 -0
  57. data/lib/devise/models/timeoutable.rb +50 -0
  58. data/lib/devise/models/token_authenticatable.rb +90 -0
  59. data/lib/devise/models/trackable.rb +36 -0
  60. data/lib/devise/models/validatable.rb +67 -0
  61. data/lib/devise/models.rb +129 -0
  62. data/lib/devise/modules.rb +30 -0
  63. data/lib/devise/omniauth/config.rb +46 -0
  64. data/lib/devise/omniauth/url_helpers.rb +19 -0
  65. data/lib/devise/omniauth.rb +29 -0
  66. data/lib/devise/orm/active_record.rb +4 -0
  67. data/lib/devise/orm/mongoid.rb +4 -0
  68. data/lib/devise/param_filter.rb +42 -0
  69. data/lib/devise/rails/routes.rb +447 -0
  70. data/lib/devise/rails/warden_compat.rb +44 -0
  71. data/lib/devise/rails.rb +55 -0
  72. data/lib/devise/strategies/authenticatable.rb +177 -0
  73. data/lib/devise/strategies/base.rb +21 -0
  74. data/lib/devise/strategies/database_authenticatable.rb +21 -0
  75. data/lib/devise/strategies/rememberable.rb +56 -0
  76. data/lib/devise/strategies/token_authenticatable.rb +57 -0
  77. data/lib/devise/test_helpers.rb +132 -0
  78. data/lib/devise/time_inflector.rb +15 -0
  79. data/lib/devise/version.rb +4 -0
  80. data/lib/devise.rb +445 -0
  81. data/lib/generators/active_record/devise_generator.rb +80 -0
  82. data/lib/generators/active_record/templates/migration.rb +20 -0
  83. data/lib/generators/active_record/templates/migration_existing.rb +27 -0
  84. data/lib/generators/devise/devise_generator.rb +25 -0
  85. data/lib/generators/devise/install_generator.rb +25 -0
  86. data/lib/generators/devise/orm_helpers.rb +33 -0
  87. data/lib/generators/devise/views_generator.rb +117 -0
  88. data/lib/generators/mongoid/devise_generator.rb +58 -0
  89. data/lib/generators/templates/README +35 -0
  90. data/lib/generators/templates/devise.rb +241 -0
  91. data/lib/generators/templates/markerb/confirmation_instructions.markerb +5 -0
  92. data/lib/generators/templates/markerb/reset_password_instructions.markerb +8 -0
  93. data/lib/generators/templates/markerb/unlock_instructions.markerb +7 -0
  94. data/lib/generators/templates/simple_form_for/confirmations/new.html.erb +15 -0
  95. data/lib/generators/templates/simple_form_for/passwords/edit.html.erb +19 -0
  96. data/lib/generators/templates/simple_form_for/passwords/new.html.erb +15 -0
  97. data/lib/generators/templates/simple_form_for/registrations/edit.html.erb +22 -0
  98. data/lib/generators/templates/simple_form_for/registrations/new.html.erb +17 -0
  99. data/lib/generators/templates/simple_form_for/sessions/new.html.erb +15 -0
  100. data/lib/generators/templates/simple_form_for/unlocks/new.html.erb +15 -0
  101. data/test/controllers/custom_strategy_test.rb +63 -0
  102. data/test/controllers/helpers_test.rb +254 -0
  103. data/test/controllers/internal_helpers_test.rb +111 -0
  104. data/test/controllers/sessions_controller_test.rb +58 -0
  105. data/test/controllers/url_helpers_test.rb +60 -0
  106. data/test/delegator_test.rb +20 -0
  107. data/test/devise_test.rb +73 -0
  108. data/test/failure_app_test.rb +222 -0
  109. data/test/generators/active_record_generator_test.rb +76 -0
  110. data/test/generators/devise_generator_test.rb +40 -0
  111. data/test/generators/install_generator_test.rb +14 -0
  112. data/test/generators/mongoid_generator_test.rb +24 -0
  113. data/test/generators/views_generator_test.rb +53 -0
  114. data/test/helpers/devise_helper_test.rb +52 -0
  115. data/test/indifferent_hash.rb +34 -0
  116. data/test/integration/authenticatable_test.rb +634 -0
  117. data/test/integration/confirmable_test.rb +299 -0
  118. data/test/integration/database_authenticatable_test.rb +83 -0
  119. data/test/integration/http_authenticatable_test.rb +98 -0
  120. data/test/integration/lockable_test.rb +243 -0
  121. data/test/integration/omniauthable_test.rb +134 -0
  122. data/test/integration/recoverable_test.rb +307 -0
  123. data/test/integration/registerable_test.rb +346 -0
  124. data/test/integration/rememberable_test.rb +159 -0
  125. data/test/integration/timeoutable_test.rb +141 -0
  126. data/test/integration/token_authenticatable_test.rb +162 -0
  127. data/test/integration/trackable_test.rb +93 -0
  128. data/test/mailers/confirmation_instructions_test.rb +103 -0
  129. data/test/mailers/reset_password_instructions_test.rb +84 -0
  130. data/test/mailers/unlock_instructions_test.rb +78 -0
  131. data/test/mapping_test.rb +128 -0
  132. data/test/models/authenticatable_test.rb +8 -0
  133. data/test/models/confirmable_test.rb +392 -0
  134. data/test/models/database_authenticatable_test.rb +190 -0
  135. data/test/models/lockable_test.rb +274 -0
  136. data/test/models/omniauthable_test.rb +8 -0
  137. data/test/models/recoverable_test.rb +206 -0
  138. data/test/models/registerable_test.rb +8 -0
  139. data/test/models/rememberable_test.rb +175 -0
  140. data/test/models/serializable_test.rb +49 -0
  141. data/test/models/timeoutable_test.rb +47 -0
  142. data/test/models/token_authenticatable_test.rb +56 -0
  143. data/test/models/trackable_test.rb +14 -0
  144. data/test/models/validatable_test.rb +117 -0
  145. data/test/models_test.rb +180 -0
  146. data/test/omniauth/config_test.rb +58 -0
  147. data/test/omniauth/url_helpers_test.rb +52 -0
  148. data/test/orm/active_record.rb +10 -0
  149. data/test/orm/mongoid.rb +15 -0
  150. data/test/rails_app/Rakefile +10 -0
  151. data/test/rails_app/app/active_record/admin.rb +7 -0
  152. data/test/rails_app/app/active_record/shim.rb +3 -0
  153. data/test/rails_app/app/active_record/user.rb +7 -0
  154. data/test/rails_app/app/controllers/admins/sessions_controller.rb +7 -0
  155. data/test/rails_app/app/controllers/admins_controller.rb +12 -0
  156. data/test/rails_app/app/controllers/application_controller.rb +9 -0
  157. data/test/rails_app/app/controllers/home_controller.rb +26 -0
  158. data/test/rails_app/app/controllers/publisher/registrations_controller.rb +3 -0
  159. data/test/rails_app/app/controllers/publisher/sessions_controller.rb +3 -0
  160. data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +15 -0
  161. data/test/rails_app/app/controllers/users_controller.rb +24 -0
  162. data/test/rails_app/app/helpers/application_helper.rb +4 -0
  163. data/test/rails_app/app/mailers/users/mailer.rb +9 -0
  164. data/test/rails_app/app/mongoid/admin.rb +28 -0
  165. data/test/rails_app/app/mongoid/shim.rb +25 -0
  166. data/test/rails_app/app/mongoid/user.rb +43 -0
  167. data/test/rails_app/app/views/admins/index.html.erb +1 -0
  168. data/test/rails_app/app/views/admins/sessions/new.html.erb +2 -0
  169. data/test/rails_app/app/views/home/admin_dashboard.html.erb +1 -0
  170. data/test/rails_app/app/views/home/index.html.erb +1 -0
  171. data/test/rails_app/app/views/home/join.html.erb +1 -0
  172. data/test/rails_app/app/views/home/private.html.erb +1 -0
  173. data/test/rails_app/app/views/home/user_dashboard.html.erb +1 -0
  174. data/test/rails_app/app/views/layouts/application.html.erb +24 -0
  175. data/test/rails_app/app/views/users/index.html.erb +1 -0
  176. data/test/rails_app/app/views/users/mailer/confirmation_instructions.erb +1 -0
  177. data/test/rails_app/app/views/users/sessions/new.html.erb +1 -0
  178. data/test/rails_app/config/application.rb +42 -0
  179. data/test/rails_app/config/boot.rb +9 -0
  180. data/test/rails_app/config/database.yml +18 -0
  181. data/test/rails_app/config/environment.rb +6 -0
  182. data/test/rails_app/config/environments/development.rb +19 -0
  183. data/test/rails_app/config/environments/production.rb +34 -0
  184. data/test/rails_app/config/environments/test.rb +34 -0
  185. data/test/rails_app/config/initializers/backtrace_silencers.rb +8 -0
  186. data/test/rails_app/config/initializers/devise.rb +179 -0
  187. data/test/rails_app/config/initializers/inflections.rb +3 -0
  188. data/test/rails_app/config/initializers/secret_token.rb +3 -0
  189. data/test/rails_app/config/routes.rb +101 -0
  190. data/test/rails_app/config.ru +4 -0
  191. data/test/rails_app/db/migrate/20100401102949_create_tables.rb +75 -0
  192. data/test/rails_app/db/schema.rb +53 -0
  193. data/test/rails_app/lib/shared_admin.rb +15 -0
  194. data/test/rails_app/lib/shared_user.rb +27 -0
  195. data/test/rails_app/public/404.html +26 -0
  196. data/test/rails_app/public/422.html +26 -0
  197. data/test/rails_app/public/500.html +26 -0
  198. data/test/rails_app/public/favicon.ico +0 -0
  199. data/test/rails_app/script/rails +10 -0
  200. data/test/routes_test.rb +249 -0
  201. data/test/support/assertions.rb +41 -0
  202. data/test/support/helpers.rb +92 -0
  203. data/test/support/integration.rb +93 -0
  204. data/test/support/locale/en.yml +4 -0
  205. data/test/support/webrat/integrations/rails.rb +25 -0
  206. data/test/test_helper.rb +28 -0
  207. data/test/test_helpers_test.rb +152 -0
  208. metadata +407 -0
data/CHANGELOG.rdoc ADDED
@@ -0,0 +1,881 @@
1
+ * enhancement
2
+ * Default minimum password length is now 8 (by @carlosgaldino).
3
+ * Confirmable now has a confirm_within option to set a period while the confirmation token is still valid (by @promisedlandt)
4
+ * Make #set_flash_message respect i18n-set resource_name (by @latortuga)
5
+ * Separate `sign_in` and `sign_up` on RegistrationsController (by @rubynortheast)
6
+ * Add autofocus to default views (by @Radagaisus)
7
+
8
+ * bug fix
9
+ * Fix a regression introduced on warden 1.2.1 (by @ejfinneran)
10
+ * Properly camelize omniauth strategies (by @saizai)
11
+ * Do not set flash messages for non navigational requests on session sign out (by @mathieul)
12
+ * Set the proper fields as required on the lockable module (by @nickhoffman)
13
+ * Respects Devise mailer default's reply_to (by @mrchrisadams)
14
+ * Properly assign resource on sign_in action (by @adammcnamara)
15
+ * Unlockable could leak account existence on paranoid mode (by @latortuga)
16
+
17
+ == 2.1.2
18
+
19
+ * enhancements
20
+ * Handle backwards incompatibility between Rails 3.2.6 and Thor 0.15.x
21
+
22
+ * bug fix
23
+ * Fix regression on strategy validation on previous release
24
+
25
+ == 2.1.1 (yanked)
26
+
27
+ * enhancements
28
+ * `sign_out_all_scopes` now locks warden and does not allow new logins in the same action
29
+ * `Devise.omniauth_path_prefix` is available to configure omniauth path prefix
30
+ * Redirect to sign in page when trying to access password#edit without a token (by @gbataille)
31
+ * Allow a lambda in authenticate(d) routes helpers to further select the scope
32
+ * Removed warnings on Rails 3.2.6 (by @nashby)
33
+
34
+ * bug fix
35
+ * `update_with_password` now relies on assign_attributes and forwards the :as option (by @wtn)
36
+ * Do not trigger timeout on sign in related actions
37
+ * Timeout does not explode when reset_authentication_token! is accidentally defined by Active Model (by @remomueller)
38
+
39
+ * deprecations
40
+ * Strategy#validate() no longer validates nil resources
41
+
42
+ == 2.1.0
43
+
44
+ * enhancements
45
+ * Add `check_fields!(model_class)` method on Devise::Models to check if the model includes the fields that Devise uses
46
+ * Add `skip_reconfirmation!` to skip reconfirmation
47
+ * Devise model generator now works with engines
48
+ * Devise encryptable was moved to its new gem (http://github.com/plataformatec/devise-encryptable)
49
+
50
+ * deprecations
51
+ * Deprecations warnings added on Devise 2.0 are now removed with their features
52
+ * All devise modules should now have a `required_fields(klass)` module method to help gathering missing attributes
53
+ * `use_salt_as_remember_token` and `apply_schema` does not have any effect since 2.0 and are now deprecated
54
+ * `valid_for_authentication?` must now return a boolean
55
+
56
+ * bug fix
57
+ * Ensure after sign in hook is not called without a resource
58
+ * Fix a term: now on Omniauth related flash messages, we say that we're authenticating from an omniauth provider instead of authorizing
59
+ * Fixed redirect when authenticated mounted apps (by @hakanensari)
60
+ * Ensure the failure app still respects config.relative_url_root
61
+ * `/users/sign_in` doesn't choke on protected attributes used to select sign in scope (by @Paymium)
62
+ * `failed_attempts` is set to zero after any sign in (including via reset password) (by @rodrigoflores)
63
+ * Added token expiration on timeout (by @antiarchitect)
64
+ * Do not accidentally mark `_prefixes` as private
65
+ * Better support for custom strategies on test helpers (by @mattconnolly)
66
+ * Return `head :no_content` in SessionsController now that most JS libraries handle it (by @julianvargasalvarez)
67
+
68
+ == 2.0.4
69
+
70
+ Notes: https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0
71
+
72
+ * bug fix
73
+ * Fix when :host is used with devise_for (by @mreinsch)
74
+ * Fix a regression that caused Warden to be initialized too late
75
+
76
+ == 2.0.3 (yanked)
77
+
78
+ * bug fix
79
+ * Ensure warning is not shown by mistake on apps with mounted engines
80
+ * Fixes related to remember_token and rememberable_options
81
+ * Ensure serializable_hash does not depend on accessible attributes
82
+ * Ensure that timeout callback does not run on sign out action
83
+
84
+ == 2.0.2
85
+
86
+ * enhancements
87
+ * Add devise_i18n_options to customize I18n message
88
+
89
+ * bug fix
90
+ * Ensure Devise.available_router_name defaults to :main_app
91
+ * Set autocomplete to off for password on edit forms
92
+ * Better error messages in case a trackable model can't be saved
93
+ * Show a warning in case someone gives a pluralized name to devise generator
94
+ * Fix test behavior for rspec subject requests (by @sj26)
95
+
96
+ == 2.0.1
97
+
98
+ * enhancements
99
+ * Improved error messages on deprecation warnings
100
+ * Hide Devise's internal generators from `rails g` command
101
+
102
+ * bug fix
103
+ * Removed tmp and log files from gem
104
+
105
+ == 2.0.0
106
+
107
+ * enhancements
108
+ * Add support for e-mail reconfirmation on change (by @Mandaryn and @heimidal)
109
+ * Redirect users to sign in page after unlock (by @nashby)
110
+ * Redirect to the previous URL on timeout
111
+ * Inherit from the same Devise parent controller (by @sj26)
112
+ * Allow parent_controller to be customizable via Devise.parent_controller, useful for engines
113
+ * Allow router_name to be customizable via Devise.router_name, useful for engines
114
+ * Allow alternate ORMs to run compatibility setup code before Authenticatable is included (by @jm81)
115
+
116
+ * deprecation
117
+ * Devise now only supports Rails 3.1 forward
118
+ * Devise.confirm_within was deprecated in favor Devise.allow_unconfirmed_access_for
119
+ * Devise.stateless_token= is deprecated in favor of appending :token_auth to Devise.skip_session_storage
120
+ * Usage of Devise.apply_schema is deprecated
121
+ * Usage of Devise migration helpers are deprecated
122
+ * Usage of Devise.remember_across_browsers was deprecated
123
+ * Usage of rememberable with remember_token was removed
124
+ * Usage of recoverable without reset_password_sent_at was removed
125
+ * Usage of Devise.case_insensitive_keys equals to false was removed
126
+ * Move devise/shared/_links.erb to devise/_links.erb
127
+ * Deprecated support of nested devise_for blocks
128
+ * Deprecated support to devise.registrations.reasons and devise.registrations.inactive_signed_up in favor of devise.registrations.signed_up_but_*
129
+ * Protected method render_with_scope was removed.
130
+
131
+ == 1.5.3
132
+
133
+ * bug fix
134
+ * Ensure delegator converts scope to symbol (by @dmitriy-kiriyenko)
135
+ * Ensure passing :format => false to devise_for is not permanent
136
+ * Ensure path checker does not check invalid routes
137
+
138
+ == 1.5.2
139
+
140
+ * enhancements
141
+ * Add support for Rails 3.1 new mass assignment conventions (by @kirs)
142
+ * Add timeout_in method to Timeoutable, it can be overridden in a model (by @lest)
143
+
144
+ * bug fix
145
+ * OmniAuth error message now shows the proper option (:strategy_class instead of :klass)
146
+
147
+ == 1.5.1
148
+
149
+ * bug fix
150
+ * Devise should not attempt to load OmniAuth strategies. Strategies should be loaded before hand by the developer or explicitly given to Devise.
151
+
152
+ == 1.5.0
153
+
154
+ * enhancements
155
+ * Timeoutable also skips tracking if skip_trackable is given
156
+ * devise_for now accepts :failure_app as an option
157
+ * Models can select the proper mailer via devise_mailer method (by @locomotivecms)
158
+ * Migration generator now uses the change method (by @nashby)
159
+ * Support to markerb templates on the mailer generator (by @sbounmy)
160
+ * Support for Omniauth 1.0 (older versions are no longer supported) (by @TamiasSibiricus)
161
+
162
+ * bug fix
163
+ * Allow idempotent API requests
164
+ * Fix bug where logs did not show 401 as status code
165
+ * Change paranoid settings to behave as success instead of as failure
166
+ * Fix bug where activation messages were shown first than the credentials error message
167
+ * Instance variables are expired after sign out
168
+
169
+ * deprecation
170
+ * redirect_location is deprecated, please use after_sign_in_path_for
171
+ * after_sign_in_path_for now redirects to session[scope_return_to] if any value is stored in it
172
+
173
+ == 1.4.9
174
+
175
+ * bug fix
176
+ * url helpers were not being set under some circumstances
177
+
178
+ == 1.4.8
179
+
180
+ * enhancements
181
+ * Add docs for assets pipeline and Heroku
182
+
183
+ * bug fix
184
+ * confirmation_url was not being set under some circumstances
185
+
186
+ == 1.4.7
187
+
188
+ * bug fix
189
+ * Fix backward incompatible change from 1.4.6 for those using custom controllers
190
+
191
+ == 1.4.6 (yanked)
192
+
193
+ * enhancements
194
+ * Allow devise_for :skip => :all
195
+ * Allow options to be passed to authenticate_user!
196
+ * Allow --skip-routes to devise generator
197
+ * Add allow_params_authentication! to make it explicit when params authentication is allowed in a controller
198
+
199
+ == 1.4.5
200
+
201
+ * bug fix
202
+ * Failure app tries the root path if a session one does not exist
203
+ * No need to finalize Devise helpers all the time (by @bradleypriest)
204
+ * Reset password shows proper message if user is not active
205
+ * `clean_up_passwords` sets the accessors to nil to skip validations
206
+
207
+ == 1.4.4
208
+
209
+ * bug fix
210
+ * Do not always skip helpers, instead provide :skip_helpers as option to trigger it manually
211
+
212
+ == 1.4.3
213
+
214
+ * enhancements
215
+ * Improve Rails 3.1 compatibility
216
+ * Use serialize_into_session and serialize_from_session in Warden serialize to improve extensibility
217
+
218
+ * bug fix
219
+ * Generator properly generates a change_table migration if a model already exists
220
+ * Properly deprecate setup_mail
221
+ * Fix encoding issues with email regexp
222
+ * Only generate helpers for the used mappings
223
+ * Wrap :action constraints in the proper hash
224
+
225
+ * deprecations
226
+ * Loosened the used email regexp to simply assert the existent of "@". If someone relies on a more strict regexp, they may use https://github.com/SixArm/sixarm_ruby_email_address_validation
227
+
228
+ == 1.4.2
229
+
230
+ * bug fix
231
+ * Provide a more robust behavior to serializers and add :force_except option
232
+
233
+ == 1.4.1
234
+
235
+ * enhancements
236
+ * Add :defaults and :format support on router
237
+ * Add simple form generators
238
+ * Better localization for devise_error_messages! (by @zedtux)
239
+
240
+ * bug fix
241
+ * Ensure to_xml is properly white listened
242
+ * Ensure handle_unverified_request clean up any cached signed-in user
243
+
244
+ == 1.4.0
245
+
246
+ * enhancements
247
+ * Added authenticated and unauthenticated to the router to route the used based on his status (by @sj26)
248
+ * Improve e-mail regexp (by @rodrigoflores)
249
+ * Add strip_whitespace_keys and default to e-mail (by @swrobel)
250
+ * Do not run format and uniqueness validations on e-mail if it hasn't changed (by @Thibaut)
251
+ * Added update_without_password to update models but not allowing the password to change (by @fschwahn)
252
+ * Added config.paranoid, check the generator for more information (by @rodrigoflores)
253
+
254
+ * bug fix
255
+ * password_required? should not affect length validation
256
+ * User cannot access sign up and similar pages if he is already signed in through a cookie or token
257
+ * Do not convert booleans to strings on finders (by @xavier)
258
+ * Run validations even if current_password fails (by @crx)
259
+ * Devise now honors routes constraints (by @macmartine)
260
+ * Do not return the user resource when requesting instructions (by @rodrigoflores)
261
+
262
+ == 1.3.4
263
+
264
+ * bug fix
265
+ * Do not add formats if html or "*/*"
266
+
267
+ == 1.3.3
268
+
269
+ * bug fix
270
+ * Explicitly mark the token as expired if so
271
+
272
+ == 1.3.2
273
+
274
+ * bug fix
275
+ * Fix another regression related to reset_password_sent_at (by @alexdreher)
276
+
277
+ == 1.3.1
278
+
279
+ * enhancements
280
+ * Improve failure_app responses (by @indirect)
281
+ * sessions/new and registrations/new also respond to xml and json now
282
+
283
+ * bug fix
284
+ * Fix a regression that occurred if reset_password_sent_at is not present (by @stevehodgkiss)
285
+
286
+ == 1.3.0
287
+
288
+ * enhancements
289
+ * All controllers can now handle different mime types than html using Responders (by @sikachu)
290
+ * Added reset_password_within as configuration option to send the token for recovery (by @jdguyot)
291
+ * Bump password length to 128 characters (by @k33l0r)
292
+ * Add :only as option to devise_for (by @timoschilling)
293
+ * Allow to override path after sending password instructions (by @irohiroki)
294
+ * require_no_authentication has its own flash message (by @jackdempsey)
295
+
296
+ * bug fix
297
+ * Fix a bug where configuration options were being included too late
298
+ * Ensure Devise::TestHelpers can be used to tests Devise internal controllers (by @jwilger)
299
+ * valid_password? should not choke on empty passwords (by @mikel)
300
+ * Calling devise more than once does not include previously added modules anymore
301
+ * downcase_keys before validation
302
+
303
+ * backward incompatible changes
304
+ * authentication_keys are no longer considered when creating the e-mail validations, the previous behavior was buggy. You must double check if you were relying on such behavior.
305
+
306
+ == 1.2.1
307
+
308
+ * enhancements
309
+ * Improve update path messages
310
+
311
+ == 1.2.0
312
+
313
+ * bug fix
314
+ * Properly ignore path prefix on omniauthable
315
+ * Faster uniqueness queries
316
+ * Rename active? to active_for_authentication? to avoid conflicts
317
+
318
+ == 1.2.rc2
319
+
320
+ * enhancements
321
+ * Make friendly_token 20 chars long
322
+ * Use secure_compare
323
+
324
+ * bug fix
325
+ * Fix an issue causing infinite redirects in production
326
+ * rails g destroy works properly with devise generators (by @andmej)
327
+ * before_failure callbacks should work on test helpers (by @twinge)
328
+ * rememberable cookie now is httponly by default (by @JamesFerguson)
329
+ * Add missing confirmation_keys (by @JohnPlummer)
330
+ * Ensure after_* hooks are called on RegistrationsController
331
+ * When using database_authenticatable Devise will now only create an email field when appropriate (if using default authentication_keys or custom authentication_keys with email included)
332
+ * Ensure stateless token does not trigger timeout (by @pixelauthority)
333
+ * Implement handle_unverified_request for Rails 3.0.4 compatibility and improve FailureApp reliance on symbols
334
+ * Consider namespaces while generating routes
335
+ * Custom failure apps no longer ignored in test mode (by @jaghion)
336
+ * Do not depend on ActiveModel::Dirty
337
+ * Manual sign_in now triggers remember token
338
+ * Be sure to halt strategies on failures
339
+ * Consider SCRIPT_NAME on Omniauth paths
340
+ * Reset failed attempts when lock is expired
341
+ * Ensure there is no Mongoid injection
342
+
343
+ * deprecations
344
+ * Deprecated anybody_signed_in? in favor of signed_in? (by @gavinhughes)
345
+ * Removed --haml and --slim view templates
346
+ * Devise::OmniAuth helpers were deprecated and removed in favor of Omniauth.config.test_mode
347
+
348
+ == 1.2.rc
349
+
350
+ * deprecations
351
+ * cookie_domain is deprecated in favor of cookie_options
352
+ * after_update_path_for can no longer be defined in ApplicationController
353
+
354
+ * enhancements
355
+ * Added OmniAuth support
356
+ * Added ORM adapter to abstract ORM iteraction
357
+ * sign_out_via is available in the router to configure the method used for sign out (by @martinrehfeld)
358
+ * Improved Ajax requests handling in failure app (by @spastorino)
359
+ * Added request_keys to easily use request specific values (like subdomain) in authentication
360
+ * Increased the size of friendly_token to 60 characters (reduces the chances of a successful brute attack)
361
+ * Ensure the friendly token does not include "_" or "-" since some e-mails may not autolink it properly (by @rymai)
362
+ * Extracted encryptors into :encryptable for better bcrypt support
363
+ * :rememberable is now able to use salt as token if no remember_token is provided
364
+ * Store the salt in session and expire the session if the user changes his password
365
+ * Allow :stateless_token to be set to true avoiding users to be stored in session through token authentication
366
+ * cookie_options uses session_options values by default
367
+ * Sign up now check if the user is active or not and redirect him accordingly setting the inactive_signed_up message
368
+ * Use ActiveModel#to_key instead of #id
369
+ * sign_out_all_scopes now destroys the whole session
370
+ * Added case_insensitive_keys that automatically downcases the given keys, by default downcases only e-mail (by @adahl)
371
+
372
+ * default behavior changes
373
+ * sign_out_all_scopes defaults to true as security measure
374
+ * http authenticatable is disabled by default
375
+ * Devise does not intercept 401 returned from applications
376
+
377
+ * bugfix
378
+ * after_sign_in_path_for always receives a resource
379
+ * Do not execute Warden::Callbacks on Devise::TestHelpers (by @sgronblo)
380
+ * Allow password recovery and account unlocking to change used keys (by @RStankov)
381
+ * FailureApp now properly handles nil request.format
382
+ * Fix a bug causing FailureApp to return with HTTP Auth Headers for IE7
383
+ * Ensure namespaces has proper scoped views
384
+ * Ensure Devise does not set empty flash messages (by @sxross)
385
+
386
+ == 1.1.6
387
+
388
+ * Use a more secure e-mail regexp
389
+ * Implement Rails 3.0.4 handle unverified request
390
+ * Use secure_compare to compare passwords
391
+
392
+ == 1.1.5
393
+
394
+ * bugfix
395
+ * Ensure to convert keys on indifferent hash
396
+
397
+ * defaults
398
+ * Set config.http_authenticatable to false to avoid confusion
399
+
400
+ == 1.1.4
401
+
402
+ * bugfix
403
+ * Avoid session fixation attacks
404
+
405
+ == 1.1.3
406
+
407
+ * bugfix
408
+ * Add reply-to to e-mail headers by default
409
+ * Updated the views generator to respect the rails :template_engine option (by @fredwu)
410
+ * Check the type of HTTP Authentication before using Basic headers
411
+ * Avoid invalid_salt errors by checking salt presence (by @thibaudgg)
412
+ * Forget user deletes the right cookie before logout, not remembering the user anymore (by @emtrane)
413
+ * Fix for failed first-ever logins on PostgreSQL where column default is nil (by @bensie)
414
+ * :default options is now honored in migrations
415
+
416
+ == 1.1.2
417
+
418
+ * bugfix
419
+ * Compatibility with latest Rails routes schema
420
+
421
+ == 1.1.1
422
+
423
+ * bugfix
424
+ * Fix a small bug where generated locale file was empty on devise:install
425
+
426
+ == 1.1.0
427
+
428
+ * enhancements
429
+ * Rememberable module allows user to be remembered across browsers and is enabled by default (by @trevorturk)
430
+ * Rememberable module allows you to activate the period the remember me token is extended (by @trevorturk)
431
+ * devise_for can now be used together with scope method in routes but with a few limitations (check the documentation)
432
+ * Support `as` or `devise_scope` in the router to specify controller access scope
433
+ * HTTP Basic Auth can now be disabled/enabled for xhr(ajax) requests using http_authenticatable_on_xhr option (by @pellja)
434
+
435
+ * bug fix
436
+ * Fix a bug in Devise::TestHelpers where current_user was returning a Response object for non active accounts
437
+ * Devise should respect script_name and path_info contracts
438
+ * Fix a bug when accessing a path with (.:format) (by @klacointe)
439
+ * Do not add unlock routes unless unlock strategy is email or both
440
+ * Email should be case insensitive
441
+ * Store classes as string in session, to avoid serialization and stale data issues
442
+
443
+ * deprecations
444
+ * use_default_scope is deprecated and has no effect. Use :as or :devise_scope in the router instead
445
+
446
+ == 1.1.rc2
447
+
448
+ * enhancements
449
+ * Allow to set cookie domain for the remember token. (by @mantas)
450
+ * Added navigational formats to specify when it should return a 302 and when a 401.
451
+ * Added authenticate(scope) support in routes (by @wildchild)
452
+ * Added after_update_path_for to registrations controller (by @thedelchop)
453
+ * Allow the mailer object to be replaced through config.mailer = "MyOwnMailer"
454
+
455
+ * bug fix
456
+ * Fix a bug where session was timing out on sign out
457
+
458
+ * deprecations
459
+ * bcrypt is now the default encryptor
460
+ * devise.mailer.confirmations_instructions now should be devise.mailer.confirmations_instructions.subject
461
+ * devise.mailer.user.confirmations_instructions now should be devise.mailer.confirmations_instructions.user_subject
462
+ * Generators now use Rails 3 syntax (devise:install) instead of devise_install
463
+
464
+ == 1.1.rc1
465
+
466
+ * enhancements
467
+ * Rails 3 compatibility
468
+ * All controllers and views are namespaced, for example: Devise::SessionsController and "devise/sessions"
469
+ * Devise.orm is deprecated. This reduces the required API to hook your ORM with devise
470
+ * Use metal for failure app
471
+ * HTML e-mails now have proper formatting
472
+ * Allow to give :skip and :controllers in routes
473
+ * Move trackable logic to the model
474
+ * E-mails now use any template available in the filesystem. Easy to create multipart e-mails
475
+ * E-mails asks headers_for in the model to set the proper headers
476
+ * Allow to specify haml in devise_views
477
+ * Compatibility with Mongoid
478
+ * Make config.devise available on config/application.rb
479
+ * TokenAuthenticatable now works with HTTP Basic Auth
480
+ * Allow :unlock_strategy to be :none and add :lock_strategy which can be :failed_attempts or none. Setting those values to :none means that you want to handle lock and unlocking by yourself
481
+ * No need to append ?unauthenticated=true in URLs anymore since Flash was moved to a middleware in Rails 3
482
+ * :activatable is included by default in your models
483
+
484
+ * bug fix
485
+ * Fix a bug with STI
486
+
487
+ * deprecations
488
+ * Rails 3 compatible only
489
+ * Removed support for MongoMapper
490
+ * Scoped views are no longer "sessions/users/new". Now use "users/sessions/new"
491
+ * Devise.orm is deprecated, just require "devise/orm/YOUR_ORM" instead
492
+ * Devise.default_url_options is deprecated, just modify ApplicationController.default_url_options
493
+ * All messages under devise.sessions, except :signed_in and :signed_out, should be moved to devise.failure
494
+ * :as and :scope in routes is deprecated. Use :path and :singular instead
495
+
496
+ == 1.0.8
497
+
498
+ * enhancements
499
+ * Support for latest MongoMapper
500
+ * Added anybody_signed_in? helper (by @SSDany)
501
+
502
+ * bug fix
503
+ * confirmation_required? is properly honored on active? calls. (by @paulrosania)
504
+
505
+ == 1.0.7
506
+
507
+ * bug fix
508
+ * Ensure password confirmation is always required
509
+
510
+ * deprecations
511
+ * authenticatable was deprecated and renamed to database_authenticatable
512
+ * confirmable is not included by default on generation
513
+
514
+ == 1.0.6
515
+
516
+ * bug fix
517
+ * Do not allow unlockable strategies based on time to access a controller.
518
+ * Do not send unlockable email several times.
519
+ * Allow controller to upstram custom! failures to Warden.
520
+
521
+ == 1.0.5
522
+
523
+ * bug fix
524
+ * Use prepend_before_filter in require_no_authentication.
525
+ * require_no_authentication on unlockable.
526
+ * Fix a bug when giving an association proxy to devise.
527
+ * Do not use lock! on lockable since it's part of ActiveRecord API.
528
+
529
+ == 1.0.4
530
+
531
+ * bug fix
532
+ * Fixed a bug when deleting an account with rememberable
533
+ * Fixed a bug with custom controllers
534
+
535
+ == 1.0.3
536
+
537
+ * enhancements
538
+ * HTML e-mails now have proper formatting
539
+ * Do not remove MongoMapper options in find
540
+
541
+ == 1.0.2
542
+
543
+ * enhancements
544
+ * Allows you set mailer content type (by @glennr)
545
+
546
+ * bug fix
547
+ * Uses the same content type as request on http authenticatable 401 responses
548
+
549
+ == 1.0.1
550
+
551
+ * enhancements
552
+ * HttpAuthenticatable is not added by default automatically.
553
+ * Avoid mass assignment error messages with current password.
554
+
555
+ * bug fix
556
+ * Fixed encryptors autoload
557
+
558
+ == 1.0.0
559
+
560
+ * deprecation
561
+ * :old_password in update_with_password is deprecated, use :current_password instead
562
+
563
+ * enhancements
564
+ * Added Registerable
565
+ * Added Http Basic Authentication support
566
+ * Allow scoped_views to be customized per controller/mailer class
567
+ * [#99] Allow authenticatable to used in change_table statements
568
+
569
+ == 0.9.2
570
+
571
+ * bug fix
572
+ * Ensure inactive user cannot sign in
573
+ * Ensure redirect to proper url after sign up
574
+
575
+ * enhancements
576
+ * Added gemspec to repo
577
+ * Added token authenticatable (by @grimen)
578
+
579
+ == 0.9.1
580
+
581
+ * bug fix
582
+ * Allow bigger salt size (by @jgeiger)
583
+ * Fix relative url root
584
+
585
+ == 0.9.0
586
+
587
+ * deprecation
588
+ * devise :all is deprecated
589
+ * :success and :failure flash messages are now :notice and :alert
590
+
591
+ * enhancements
592
+ * Added devise lockable (by @mhfs)
593
+ * Warden 0.9.0 compatibility
594
+ * Mongomapper 0.6.10 compatibility
595
+ * Added Devise.add_module as hooks for extensions (by @grimen)
596
+ * Ruby 1.9.1 compatibility (by @grimen)
597
+
598
+ * bug fix
599
+ * Accept path prefix not starting with slash
600
+ * url helpers should rely on find_scope!
601
+
602
+ == 0.8.2
603
+
604
+ * enhancements
605
+ * Allow Devise.mailer_sender to be a proc (by @grimen)
606
+
607
+ * bug fix
608
+ * Fix bug with passenger, update is required to anyone deploying on passenger (by @dvdpalm)
609
+
610
+ == 0.8.1
611
+
612
+ * enhancements
613
+ * Move salt to encryptors
614
+ * Devise::Lockable
615
+ * Moved view links into partial and I18n'ed them
616
+
617
+ * bug fix
618
+ * Bcrypt generator was not being loaded neither setting the proper salt
619
+
620
+ == 0.8.0
621
+
622
+ * enhancements
623
+ * Warden 0.8.0 compatibility
624
+ * Add an easy for map.connect "sign_in", :controller => "sessions", :action => "new" to work
625
+ * Added :bcrypt encryptor (by @capotej)
626
+
627
+ * bug fix
628
+ * sign_in_count is also increased when user signs in via password change, confirmation, etc..
629
+ * More DataMapper compatibility (by @lancecarlson)
630
+
631
+ * deprecation
632
+ * Removed DeviseMailer.sender
633
+
634
+ == 0.7.5
635
+
636
+ * enhancements
637
+ * Set a default value for mailer to avoid find_template issues
638
+ * Add models configuration to MongoMapper::EmbeddedDocument as well
639
+
640
+ == 0.7.4
641
+
642
+ * enhancements
643
+ * Extract Activatable from Confirmable
644
+ * Decouple Serializers from Devise modules
645
+
646
+ == 0.7.3
647
+
648
+ * bug fix
649
+ * Give scope to the proper model validation
650
+
651
+ * enhancements
652
+ * Mail views are scoped as well
653
+ * Added update_with_password for authenticatable
654
+ * Allow render_with_scope to accept :controller option
655
+
656
+ == 0.7.2
657
+
658
+ * deprecation
659
+ * Renamed reset_confirmation! to resend_confirmation!
660
+ * Copying locale is part of the installation process
661
+
662
+ * bug fix
663
+ * Fixed render_with_scope to work with all controllers
664
+ * Allow sign in with two different users in Devise::TestHelpers
665
+
666
+ == 0.7.1
667
+
668
+ * enhancements
669
+ * Small enhancements for other plugins compatibility (by @grimen)
670
+
671
+ == 0.7.0
672
+
673
+ * deprecations
674
+ * :authenticatable is not included by default anymore
675
+
676
+ * enhancements
677
+ * Improve loading process
678
+ * Extract SessionSerializer from Authenticatable
679
+
680
+ == 0.6.3
681
+
682
+ * bug fix
683
+ * Added trackable to migrations
684
+ * Allow inflections to work
685
+
686
+ == 0.6.2
687
+
688
+ * enhancements
689
+ * More DataMapper compatibility
690
+ * Devise::Trackable - track sign in count, timestamps and ips
691
+
692
+ == 0.6.1
693
+
694
+ * enhancements
695
+ * Devise::Timeoutable - timeout sessions without activity
696
+ * DataMapper now accepts conditions
697
+
698
+ == 0.6.0
699
+
700
+ * deprecations
701
+ * :authenticatable is still included by default, but yields a deprecation warning
702
+
703
+ * enhancements
704
+ * Added DataMapper support
705
+ * Remove store_location from authenticatable strategy and add it to failure app
706
+ * Allow a strategy to be placed after authenticatable
707
+ * [#45] Do not rely attribute? methods, since they are not added on Datamapper
708
+
709
+ == 0.5.6
710
+
711
+ * enhancements
712
+ * [#42] Do not send nil to build (DataMapper compatibility)
713
+ * [#44] Allow to have scoped views
714
+
715
+ == 0.5.5
716
+
717
+ * enhancements
718
+ * Allow overwriting find for authentication method
719
+ * [#38] Remove Ruby 1.8.7 dependency
720
+
721
+ == 0.5.4
722
+
723
+ * deprecations
724
+ * Deprecate :singular in devise_for and use :scope instead
725
+
726
+ * enhancements
727
+ * [#37] Create after_sign_in_path_for and after_sign_out_path_for hooks to be
728
+ overwriten in ApplicationController
729
+ * Create sign_in_and_redirect and sign_out_and_redirect helpers
730
+ * Warden::Manager.default_scope is automatically configured to the first given scope
731
+
732
+ == 0.5.3
733
+
734
+ * bug fix
735
+ * MongoMapper now converts DateTime to Time
736
+ * Ensure all controllers are unloadable
737
+
738
+ * enhancements
739
+ * [#35] Moved friendly_token to Devise
740
+ * Added Devise.all, so you can freeze your app strategies
741
+ * Added Devise.apply_schema, so you can turn it to false in Datamapper or MongoMapper
742
+ in cases you don't want it be handlded automatically
743
+
744
+ == 0.5.2
745
+
746
+ * enhancements
747
+ * [#28] Improved sign_in and sign_out helpers to accepts resources
748
+ * [#28] Added stored_location_for as a helper
749
+ * [#20] Added test helpers
750
+
751
+ == 0.5.1
752
+
753
+ * enhancements
754
+ * Added serializers based on Warden ones
755
+ * Allow authentication keys to be set
756
+
757
+ == 0.5.0
758
+
759
+ * bug fix
760
+ * Fixed a bug where remember me module was not working properly
761
+
762
+ * enhancements
763
+ * Moved encryption strategy into the Encryptors module to allow several algorithms (by @mhfs)
764
+ * Implemented encryptors for Clearance, Authlogic and Restful-Authentication (by @mhfs)
765
+ * Added support for MongoMapper (by @shingara)
766
+
767
+ == 0.4.3
768
+
769
+ * bug fix
770
+ * [#29] Authentication just fails if user cannot be serialized from session, without raising errors;
771
+ * Default configuration values should not overwrite user values;
772
+
773
+ == 0.4.2
774
+
775
+ * deprecations
776
+ * Renamed mail_sender to mailer_sender
777
+
778
+ * enhancements
779
+ * skip_before_filter added in Devise controllers
780
+ * Use home_or_root_path on require_no_authentication as well
781
+ * Added devise_controller?, useful to select or reject filters in ApplicationController
782
+ * Allow :path_prefix to be given to devise_for
783
+ * Allow default_url_options to be configured through devise (:path_prefix => "/:locale" is now supported)
784
+
785
+ == 0.4.1
786
+
787
+ * bug fix
788
+ * [#21] Ensure options can be set even if models were not loaded
789
+
790
+ == 0.4.0
791
+
792
+ * deprecations
793
+ * Notifier is deprecated, use DeviseMailer instead. Remember to rename
794
+ app/views/notifier to app/views/devise_mailer and I18n key from
795
+ devise.notifier to devise.mailer
796
+ * :authenticable calls are deprecated, use :authenticatable instead
797
+
798
+ * enhancements
799
+ * [#16] Allow devise to be more agnostic and do not require ActiveRecord to be loaded
800
+ * Allow Warden::Manager to be configured through Devise
801
+ * Created a generator which creates an initializer
802
+
803
+ == 0.3.0
804
+
805
+ * bug fix
806
+ * [#15] Allow yml messages to be configured by not using engine locales
807
+
808
+ * deprecations
809
+ * Renamed confirm_in to confirm_within
810
+ * [#14] Do not send confirmation messages when user changes his e-mail
811
+ * [#13] Renamed authenticable to authenticatable and added deprecation warnings
812
+
813
+ == 0.2.3
814
+
815
+ * enhancements
816
+ * Ensure fail! works inside strategies
817
+ * [#12] Make unauthenticated message (when you haven't signed in) different from invalid message
818
+
819
+ * bug fix
820
+ * Do not redirect on invalid authenticate
821
+ * Allow model configuration to be set to nil
822
+
823
+ == 0.2.2
824
+
825
+ * bug fix
826
+ * [#9] Fix a bug when using customized resources
827
+
828
+ == 0.2.1
829
+
830
+ * refactor
831
+ * Clean devise_views generator to use devise existing views
832
+
833
+ * enhancements
834
+ * [#7] Create instance variables (like @user) for each devise controller
835
+ * Use Devise::Controller::Helpers only internally
836
+
837
+ * bug fix
838
+ * [#6] Fix a bug with Mongrel and Ruby 1.8.6
839
+
840
+ == 0.2.0
841
+
842
+ * enhancements
843
+ * [#4] Allow option :null => true in authenticable migration
844
+ * [#3] Remove attr_accessible calls from devise modules
845
+ * Customizable time frame for rememberable with :remember_for config
846
+ * Customizable time frame for confirmable with :confirm_in config
847
+ * Generators for creating a resource and copy views
848
+
849
+ * optimize
850
+ * Do not load hooks or strategies if they are not used
851
+
852
+ * bug fixes
853
+ * [#2] Fixed requiring devise strategies
854
+
855
+ == 0.1.1
856
+
857
+ * bug fixes
858
+ * [#1] Fixed requiring devise mapping
859
+
860
+ == 0.1.0
861
+
862
+ * Devise::Authenticable
863
+ * Devise::Confirmable
864
+ * Devise::Recoverable
865
+ * Devise::Validatable
866
+ * Devise::Migratable
867
+ * Devise::Rememberable
868
+
869
+ * SessionsController
870
+ * PasswordsController
871
+ * ConfirmationsController
872
+
873
+ * Create an example app
874
+ * devise :all, :except => :rememberable
875
+ * Use sign_in and sign_out in SessionsController
876
+
877
+ * Mailer subjects namespaced by model
878
+ * Allow stretches and pepper per model
879
+
880
+ * Store session[:return_to] in session
881
+ * Sign user in automatically after confirming or changing it's password