upstream-devise 2.1.0.rc

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