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