devise 4.1.1 → 5.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +68 -111
- data/MIT-LICENSE +2 -1
- data/README.md +315 -98
- data/app/controllers/devise/confirmations_controller.rb +3 -0
- data/app/controllers/devise/omniauth_callbacks_controller.rb +7 -5
- data/app/controllers/devise/passwords_controller.rb +10 -2
- data/app/controllers/devise/registrations_controller.rb +42 -20
- data/app/controllers/devise/sessions_controller.rb +9 -7
- data/app/controllers/devise/unlocks_controller.rb +3 -0
- data/app/controllers/devise_controller.rb +19 -3
- data/app/helpers/devise_helper.rb +3 -23
- data/app/mailers/devise/mailer.rb +10 -4
- data/app/views/devise/confirmations/new.html.erb +3 -3
- data/app/views/devise/mailer/email_changed.html.erb +7 -0
- data/app/views/devise/passwords/edit.html.erb +6 -6
- data/app/views/devise/passwords/new.html.erb +4 -4
- data/app/views/devise/registrations/edit.html.erb +13 -10
- data/app/views/devise/registrations/new.html.erb +9 -9
- data/app/views/devise/sessions/new.html.erb +8 -8
- data/app/views/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/devise/shared/_links.html.erb +13 -13
- data/app/views/devise/unlocks/new.html.erb +3 -3
- data/config/locales/en.yml +5 -2
- data/lib/devise/controllers/helpers.rb +24 -9
- data/lib/devise/controllers/rememberable.rb +3 -1
- data/lib/devise/controllers/responder.rb +35 -0
- data/lib/devise/controllers/scoped_views.rb +2 -0
- data/lib/devise/controllers/sign_in_out.rb +31 -21
- data/lib/devise/controllers/store_location.rb +25 -7
- data/lib/devise/controllers/url_helpers.rb +3 -1
- data/lib/devise/delegator.rb +2 -0
- data/lib/devise/encryptor.rb +2 -0
- data/lib/devise/failure_app.rb +71 -38
- data/lib/devise/hooks/activatable.rb +3 -1
- data/lib/devise/hooks/csrf_cleaner.rb +8 -1
- data/lib/devise/hooks/forgetable.rb +2 -0
- data/lib/devise/hooks/lockable.rb +4 -2
- data/lib/devise/hooks/proxy.rb +3 -1
- data/lib/devise/hooks/rememberable.rb +2 -0
- data/lib/devise/hooks/timeoutable.rb +5 -3
- data/lib/devise/hooks/trackable.rb +2 -0
- data/lib/devise/mailers/helpers.rb +15 -18
- data/lib/devise/mapping.rb +4 -2
- data/lib/devise/models/authenticatable.rb +58 -44
- data/lib/devise/models/confirmable.rb +52 -14
- data/lib/devise/models/database_authenticatable.rb +52 -20
- data/lib/devise/models/lockable.rb +19 -5
- data/lib/devise/models/omniauthable.rb +4 -2
- data/lib/devise/models/recoverable.rb +22 -21
- data/lib/devise/models/registerable.rb +4 -0
- data/lib/devise/models/rememberable.rb +6 -4
- data/lib/devise/models/timeoutable.rb +3 -1
- data/lib/devise/models/trackable.rb +15 -1
- data/lib/devise/models/validatable.rb +10 -6
- data/lib/devise/models.rb +4 -1
- data/lib/devise/modules.rb +2 -0
- data/lib/devise/omniauth/config.rb +2 -0
- data/lib/devise/omniauth/url_helpers.rb +2 -51
- data/lib/devise/omniauth.rb +4 -5
- data/lib/devise/orm/active_record.rb +5 -1
- data/lib/devise/orm/mongoid.rb +6 -2
- data/lib/devise/orm.rb +80 -0
- data/lib/devise/parameter_filter.rb +4 -0
- data/lib/devise/parameter_sanitizer.rb +16 -58
- data/lib/devise/rails/routes.rb +12 -11
- data/lib/devise/rails/warden_compat.rb +2 -0
- data/lib/devise/rails.rb +16 -6
- data/lib/devise/strategies/authenticatable.rb +3 -1
- data/lib/devise/strategies/base.rb +2 -0
- data/lib/devise/strategies/database_authenticatable.rb +8 -1
- data/lib/devise/strategies/rememberable.rb +2 -0
- data/lib/devise/test/controller_helpers.rb +156 -0
- data/lib/devise/test/integration_helpers.rb +63 -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 +69 -28
- data/lib/generators/active_record/devise_generator.rb +38 -16
- 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 +4 -2
- data/lib/generators/devise/devise_generator.rb +5 -3
- data/lib/generators/devise/install_generator.rb +3 -5
- data/lib/generators/devise/orm_helpers.rb +5 -3
- data/lib/generators/devise/views_generator.rb +8 -9
- data/lib/generators/mongoid/devise_generator.rb +7 -5
- data/lib/generators/templates/README +9 -8
- data/lib/generators/templates/controllers/confirmations_controller.rb +2 -0
- data/lib/generators/templates/controllers/omniauth_callbacks_controller.rb +3 -1
- data/lib/generators/templates/controllers/passwords_controller.rb +2 -0
- data/lib/generators/templates/controllers/registrations_controller.rb +4 -2
- data/lib/generators/templates/controllers/sessions_controller.rb +3 -1
- data/lib/generators/templates/controllers/unlocks_controller.rb +2 -0
- data/lib/generators/templates/devise.rb +59 -11
- data/lib/generators/templates/markerb/email_changed.markerb +7 -0
- data/lib/generators/templates/markerb/password_change.markerb +2 -2
- data/lib/generators/templates/simple_form_for/confirmations/new.html.erb +5 -1
- data/lib/generators/templates/simple_form_for/passwords/edit.html.erb +10 -2
- data/lib/generators/templates/simple_form_for/passwords/new.html.erb +5 -2
- data/lib/generators/templates/simple_form_for/registrations/edit.html.erb +12 -4
- data/lib/generators/templates/simple_form_for/registrations/new.html.erb +11 -3
- data/lib/generators/templates/simple_form_for/sessions/new.html.erb +7 -2
- data/lib/generators/templates/simple_form_for/unlocks/new.html.erb +4 -1
- metadata +23 -302
- data/.gitignore +0 -10
- data/.travis.yml +0 -44
- data/.yardopts +0 -9
- data/CODE_OF_CONDUCT.md +0 -22
- data/CONTRIBUTING.md +0 -16
- data/Gemfile +0 -30
- data/Gemfile.lock +0 -182
- data/Rakefile +0 -36
- data/bin/test +0 -13
- data/devise.gemspec +0 -26
- data/devise.png +0 -0
- data/gemfiles/Gemfile.rails-4.1-stable +0 -30
- data/gemfiles/Gemfile.rails-4.1-stable.lock +0 -170
- data/gemfiles/Gemfile.rails-4.2-stable +0 -30
- data/gemfiles/Gemfile.rails-4.2-stable.lock +0 -192
- data/gemfiles/Gemfile.rails-5.0-beta +0 -37
- data/gemfiles/Gemfile.rails-5.0-beta.lock +0 -199
- data/lib/devise/test_helpers.rb +0 -137
- data/test/controllers/custom_registrations_controller_test.rb +0 -40
- data/test/controllers/custom_strategy_test.rb +0 -64
- data/test/controllers/helper_methods_test.rb +0 -22
- data/test/controllers/helpers_test.rb +0 -316
- data/test/controllers/inherited_controller_i18n_messages_test.rb +0 -51
- data/test/controllers/internal_helpers_test.rb +0 -127
- data/test/controllers/load_hooks_controller_test.rb +0 -19
- data/test/controllers/passwords_controller_test.rb +0 -32
- data/test/controllers/sessions_controller_test.rb +0 -106
- data/test/controllers/url_helpers_test.rb +0 -65
- data/test/delegator_test.rb +0 -19
- data/test/devise_test.rb +0 -107
- data/test/failure_app_test.rb +0 -320
- data/test/generators/active_record_generator_test.rb +0 -83
- data/test/generators/controllers_generator_test.rb +0 -48
- data/test/generators/devise_generator_test.rb +0 -39
- data/test/generators/install_generator_test.rb +0 -24
- data/test/generators/mongoid_generator_test.rb +0 -23
- data/test/generators/views_generator_test.rb +0 -103
- data/test/helpers/devise_helper_test.rb +0 -49
- data/test/integration/authenticatable_test.rb +0 -698
- data/test/integration/confirmable_test.rb +0 -324
- data/test/integration/database_authenticatable_test.rb +0 -95
- data/test/integration/http_authenticatable_test.rb +0 -106
- data/test/integration/lockable_test.rb +0 -240
- data/test/integration/omniauthable_test.rb +0 -135
- data/test/integration/recoverable_test.rb +0 -347
- data/test/integration/registerable_test.rb +0 -357
- data/test/integration/rememberable_test.rb +0 -211
- data/test/integration/timeoutable_test.rb +0 -184
- data/test/integration/trackable_test.rb +0 -92
- data/test/mailers/confirmation_instructions_test.rb +0 -115
- data/test/mailers/reset_password_instructions_test.rb +0 -96
- data/test/mailers/unlock_instructions_test.rb +0 -91
- data/test/mapping_test.rb +0 -134
- data/test/models/authenticatable_test.rb +0 -23
- data/test/models/confirmable_test.rb +0 -511
- data/test/models/database_authenticatable_test.rb +0 -269
- data/test/models/lockable_test.rb +0 -350
- data/test/models/omniauthable_test.rb +0 -7
- data/test/models/recoverable_test.rb +0 -251
- data/test/models/registerable_test.rb +0 -7
- data/test/models/rememberable_test.rb +0 -169
- data/test/models/serializable_test.rb +0 -49
- data/test/models/timeoutable_test.rb +0 -51
- data/test/models/trackable_test.rb +0 -41
- data/test/models/validatable_test.rb +0 -119
- data/test/models_test.rb +0 -153
- data/test/omniauth/config_test.rb +0 -57
- data/test/omniauth/url_helpers_test.rb +0 -51
- data/test/orm/active_record.rb +0 -17
- data/test/orm/mongoid.rb +0 -13
- data/test/parameter_sanitizer_test.rb +0 -131
- data/test/rails_app/Rakefile +0 -6
- data/test/rails_app/app/active_record/admin.rb +0 -6
- data/test/rails_app/app/active_record/shim.rb +0 -2
- data/test/rails_app/app/active_record/user.rb +0 -7
- data/test/rails_app/app/active_record/user_on_engine.rb +0 -7
- data/test/rails_app/app/active_record/user_on_main_app.rb +0 -7
- data/test/rails_app/app/active_record/user_without_email.rb +0 -8
- data/test/rails_app/app/controllers/admins/sessions_controller.rb +0 -6
- data/test/rails_app/app/controllers/admins_controller.rb +0 -6
- data/test/rails_app/app/controllers/application_controller.rb +0 -11
- data/test/rails_app/app/controllers/application_with_fake_engine.rb +0 -30
- data/test/rails_app/app/controllers/custom/registrations_controller.rb +0 -31
- data/test/rails_app/app/controllers/home_controller.rb +0 -29
- data/test/rails_app/app/controllers/publisher/registrations_controller.rb +0 -2
- data/test/rails_app/app/controllers/publisher/sessions_controller.rb +0 -2
- data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +0 -14
- data/test/rails_app/app/controllers/users_controller.rb +0 -31
- data/test/rails_app/app/helpers/application_helper.rb +0 -3
- data/test/rails_app/app/mailers/users/from_proc_mailer.rb +0 -3
- data/test/rails_app/app/mailers/users/mailer.rb +0 -3
- data/test/rails_app/app/mailers/users/reply_to_mailer.rb +0 -4
- data/test/rails_app/app/mongoid/admin.rb +0 -29
- data/test/rails_app/app/mongoid/shim.rb +0 -23
- data/test/rails_app/app/mongoid/user.rb +0 -39
- data/test/rails_app/app/mongoid/user_on_engine.rb +0 -39
- data/test/rails_app/app/mongoid/user_on_main_app.rb +0 -39
- data/test/rails_app/app/mongoid/user_without_email.rb +0 -33
- data/test/rails_app/app/views/admins/index.html.erb +0 -1
- data/test/rails_app/app/views/admins/sessions/new.html.erb +0 -2
- data/test/rails_app/app/views/home/admin_dashboard.html.erb +0 -1
- data/test/rails_app/app/views/home/index.html.erb +0 -1
- data/test/rails_app/app/views/home/join.html.erb +0 -1
- data/test/rails_app/app/views/home/private.html.erb +0 -1
- data/test/rails_app/app/views/home/user_dashboard.html.erb +0 -1
- data/test/rails_app/app/views/layouts/application.html.erb +0 -24
- data/test/rails_app/app/views/users/edit_form.html.erb +0 -1
- data/test/rails_app/app/views/users/index.html.erb +0 -1
- data/test/rails_app/app/views/users/mailer/confirmation_instructions.erb +0 -1
- data/test/rails_app/app/views/users/sessions/new.html.erb +0 -1
- data/test/rails_app/bin/bundle +0 -3
- data/test/rails_app/bin/rails +0 -4
- data/test/rails_app/bin/rake +0 -4
- data/test/rails_app/config/application.rb +0 -44
- data/test/rails_app/config/boot.rb +0 -14
- data/test/rails_app/config/database.yml +0 -18
- data/test/rails_app/config/environment.rb +0 -5
- data/test/rails_app/config/environments/development.rb +0 -30
- data/test/rails_app/config/environments/production.rb +0 -84
- data/test/rails_app/config/environments/test.rb +0 -46
- data/test/rails_app/config/initializers/backtrace_silencers.rb +0 -7
- data/test/rails_app/config/initializers/devise.rb +0 -180
- data/test/rails_app/config/initializers/inflections.rb +0 -2
- data/test/rails_app/config/initializers/secret_token.rb +0 -3
- data/test/rails_app/config/initializers/session_store.rb +0 -1
- data/test/rails_app/config/routes.rb +0 -126
- data/test/rails_app/config.ru +0 -4
- data/test/rails_app/db/migrate/20100401102949_create_tables.rb +0 -71
- data/test/rails_app/db/schema.rb +0 -55
- data/test/rails_app/lib/shared_admin.rb +0 -17
- data/test/rails_app/lib/shared_user.rb +0 -30
- data/test/rails_app/lib/shared_user_without_email.rb +0 -26
- data/test/rails_app/lib/shared_user_without_omniauth.rb +0 -13
- data/test/rails_app/public/404.html +0 -26
- data/test/rails_app/public/422.html +0 -26
- data/test/rails_app/public/500.html +0 -26
- data/test/rails_app/public/favicon.ico +0 -0
- data/test/rails_test.rb +0 -9
- data/test/routes_test.rb +0 -279
- data/test/support/action_controller/record_identifier.rb +0 -10
- data/test/support/assertions.rb +0 -39
- data/test/support/helpers.rb +0 -77
- data/test/support/http_method_compatibility.rb +0 -51
- data/test/support/integration.rb +0 -92
- data/test/support/locale/en.yml +0 -8
- data/test/support/mongoid.yml +0 -6
- data/test/support/webrat/integrations/rails.rb +0 -33
- data/test/test_helper.rb +0 -34
- data/test/test_helpers_test.rb +0 -178
- data/test/test_models.rb +0 -33
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
source "https://rubygems.org"
|
|
2
|
-
|
|
3
|
-
gemspec path: ".."
|
|
4
|
-
|
|
5
|
-
gem "rails", "5.0.0.beta3"
|
|
6
|
-
gem "omniauth", " ~>1.3"
|
|
7
|
-
gem "oauth2"
|
|
8
|
-
gem "omniauth-oauth2", ">= 1.2.0", "< 1.5.0"
|
|
9
|
-
gem "rdoc"
|
|
10
|
-
|
|
11
|
-
gem "activemodel-serializers-xml", github: "rails/activemodel-serializers-xml"
|
|
12
|
-
|
|
13
|
-
gem "rails-controller-testing"
|
|
14
|
-
|
|
15
|
-
gem "responders", "~> 2.1.1"
|
|
16
|
-
|
|
17
|
-
group :test do
|
|
18
|
-
gem "omniauth-facebook"
|
|
19
|
-
gem "omniauth-openid", "~> 1.0.1"
|
|
20
|
-
gem "webrat", "0.7.3", require: false
|
|
21
|
-
gem "mocha", "~> 1.1", require: false
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
platforms :jruby do
|
|
25
|
-
gem "activerecord-jdbc-adapter"
|
|
26
|
-
gem "activerecord-jdbcsqlite3-adapter"
|
|
27
|
-
gem "jruby-openssl"
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
platforms :ruby do
|
|
31
|
-
gem "sqlite3"
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# TODO:
|
|
35
|
-
# group :mongoid do
|
|
36
|
-
# gem "mongoid", "~> 4.0.0"
|
|
37
|
-
# end
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
GIT
|
|
2
|
-
remote: git://github.com/rails/activemodel-serializers-xml.git
|
|
3
|
-
revision: f380ea5ddefcb9a37f4fbc47606ed6fbecdb2b2a
|
|
4
|
-
specs:
|
|
5
|
-
activemodel-serializers-xml (1.0.0)
|
|
6
|
-
activemodel (> 5.x)
|
|
7
|
-
activerecord (> 5.x)
|
|
8
|
-
activesupport (> 5.x)
|
|
9
|
-
builder (~> 3.1)
|
|
10
|
-
|
|
11
|
-
PATH
|
|
12
|
-
remote: ..
|
|
13
|
-
specs:
|
|
14
|
-
devise (4.0.0.rc2)
|
|
15
|
-
bcrypt (~> 3.0)
|
|
16
|
-
orm_adapter (~> 0.1)
|
|
17
|
-
railties (>= 4.1.0, < 5.1)
|
|
18
|
-
responders
|
|
19
|
-
warden (~> 1.2.3)
|
|
20
|
-
|
|
21
|
-
GEM
|
|
22
|
-
remote: https://rubygems.org/
|
|
23
|
-
specs:
|
|
24
|
-
actioncable (5.0.0.beta3)
|
|
25
|
-
actionpack (= 5.0.0.beta3)
|
|
26
|
-
nio4r (~> 1.2)
|
|
27
|
-
websocket-driver (~> 0.6.1)
|
|
28
|
-
actionmailer (5.0.0.beta3)
|
|
29
|
-
actionpack (= 5.0.0.beta3)
|
|
30
|
-
actionview (= 5.0.0.beta3)
|
|
31
|
-
activejob (= 5.0.0.beta3)
|
|
32
|
-
mail (~> 2.5, >= 2.5.4)
|
|
33
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
34
|
-
actionpack (5.0.0.beta3)
|
|
35
|
-
actionview (= 5.0.0.beta3)
|
|
36
|
-
activesupport (= 5.0.0.beta3)
|
|
37
|
-
rack (~> 2.x)
|
|
38
|
-
rack-test (~> 0.6.3)
|
|
39
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
40
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
41
|
-
actionview (5.0.0.beta3)
|
|
42
|
-
activesupport (= 5.0.0.beta3)
|
|
43
|
-
builder (~> 3.1)
|
|
44
|
-
erubis (~> 2.7.0)
|
|
45
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
46
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
47
|
-
activejob (5.0.0.beta3)
|
|
48
|
-
activesupport (= 5.0.0.beta3)
|
|
49
|
-
globalid (>= 0.3.6)
|
|
50
|
-
activemodel (5.0.0.beta3)
|
|
51
|
-
activesupport (= 5.0.0.beta3)
|
|
52
|
-
activerecord (5.0.0.beta3)
|
|
53
|
-
activemodel (= 5.0.0.beta3)
|
|
54
|
-
activesupport (= 5.0.0.beta3)
|
|
55
|
-
arel (~> 7.0)
|
|
56
|
-
activesupport (5.0.0.beta3)
|
|
57
|
-
concurrent-ruby (~> 1.0)
|
|
58
|
-
i18n (~> 0.7)
|
|
59
|
-
minitest (~> 5.1)
|
|
60
|
-
tzinfo (~> 1.1)
|
|
61
|
-
arel (7.0.0)
|
|
62
|
-
bcrypt (3.1.11)
|
|
63
|
-
builder (3.2.2)
|
|
64
|
-
concurrent-ruby (1.0.1)
|
|
65
|
-
erubis (2.7.0)
|
|
66
|
-
faraday (0.9.2)
|
|
67
|
-
multipart-post (>= 1.2, < 3)
|
|
68
|
-
globalid (0.3.6)
|
|
69
|
-
activesupport (>= 4.1.0)
|
|
70
|
-
hashie (3.4.3)
|
|
71
|
-
i18n (0.7.0)
|
|
72
|
-
json (1.8.3)
|
|
73
|
-
jwt (1.5.1)
|
|
74
|
-
loofah (2.0.3)
|
|
75
|
-
nokogiri (>= 1.5.9)
|
|
76
|
-
mail (2.6.4)
|
|
77
|
-
mime-types (>= 1.16, < 4)
|
|
78
|
-
metaclass (0.0.4)
|
|
79
|
-
method_source (0.8.2)
|
|
80
|
-
mime-types (3.0)
|
|
81
|
-
mime-types-data (~> 3.2015)
|
|
82
|
-
mime-types-data (3.2016.0221)
|
|
83
|
-
mini_portile2 (2.0.0)
|
|
84
|
-
minitest (5.8.4)
|
|
85
|
-
mocha (1.1.0)
|
|
86
|
-
metaclass (~> 0.0.1)
|
|
87
|
-
multi_json (1.11.2)
|
|
88
|
-
multi_xml (0.5.5)
|
|
89
|
-
multipart-post (2.0.0)
|
|
90
|
-
nio4r (1.2.1)
|
|
91
|
-
nokogiri (1.6.7.2)
|
|
92
|
-
mini_portile2 (~> 2.0.0.rc2)
|
|
93
|
-
oauth2 (1.1.0)
|
|
94
|
-
faraday (>= 0.8, < 0.10)
|
|
95
|
-
jwt (~> 1.0, < 1.5.2)
|
|
96
|
-
multi_json (~> 1.3)
|
|
97
|
-
multi_xml (~> 0.5)
|
|
98
|
-
rack (>= 1.2, < 3)
|
|
99
|
-
omniauth (1.3.1)
|
|
100
|
-
hashie (>= 1.2, < 4)
|
|
101
|
-
rack (>= 1.0, < 3)
|
|
102
|
-
omniauth-facebook (3.0.0)
|
|
103
|
-
omniauth-oauth2 (~> 1.2)
|
|
104
|
-
omniauth-oauth2 (1.4.0)
|
|
105
|
-
oauth2 (~> 1.0)
|
|
106
|
-
omniauth (~> 1.2)
|
|
107
|
-
omniauth-openid (1.0.1)
|
|
108
|
-
omniauth (~> 1.0)
|
|
109
|
-
rack-openid (~> 1.3.1)
|
|
110
|
-
orm_adapter (0.5.0)
|
|
111
|
-
rack (2.0.0.alpha)
|
|
112
|
-
json
|
|
113
|
-
rack-openid (1.3.1)
|
|
114
|
-
rack (>= 1.1.0)
|
|
115
|
-
ruby-openid (>= 2.1.8)
|
|
116
|
-
rack-test (0.6.3)
|
|
117
|
-
rack (>= 1.0)
|
|
118
|
-
rails (5.0.0.beta3)
|
|
119
|
-
actioncable (= 5.0.0.beta3)
|
|
120
|
-
actionmailer (= 5.0.0.beta3)
|
|
121
|
-
actionpack (= 5.0.0.beta3)
|
|
122
|
-
actionview (= 5.0.0.beta3)
|
|
123
|
-
activejob (= 5.0.0.beta3)
|
|
124
|
-
activemodel (= 5.0.0.beta3)
|
|
125
|
-
activerecord (= 5.0.0.beta3)
|
|
126
|
-
activesupport (= 5.0.0.beta3)
|
|
127
|
-
bundler (>= 1.3.0, < 2.0)
|
|
128
|
-
railties (= 5.0.0.beta3)
|
|
129
|
-
sprockets-rails (>= 2.0.0)
|
|
130
|
-
rails-controller-testing (0.1.1)
|
|
131
|
-
actionpack (~> 5.x)
|
|
132
|
-
actionview (~> 5.x)
|
|
133
|
-
activesupport (~> 5.x)
|
|
134
|
-
rails-deprecated_sanitizer (1.0.3)
|
|
135
|
-
activesupport (>= 4.2.0.alpha)
|
|
136
|
-
rails-dom-testing (1.0.7)
|
|
137
|
-
activesupport (>= 4.2.0.beta, < 5.0)
|
|
138
|
-
nokogiri (~> 1.6.0)
|
|
139
|
-
rails-deprecated_sanitizer (>= 1.0.1)
|
|
140
|
-
rails-html-sanitizer (1.0.3)
|
|
141
|
-
loofah (~> 2.0)
|
|
142
|
-
railties (5.0.0.beta3)
|
|
143
|
-
actionpack (= 5.0.0.beta3)
|
|
144
|
-
activesupport (= 5.0.0.beta3)
|
|
145
|
-
method_source
|
|
146
|
-
rake (>= 0.8.7)
|
|
147
|
-
thor (>= 0.18.1, < 2.0)
|
|
148
|
-
rake (11.1.2)
|
|
149
|
-
rdoc (4.2.2)
|
|
150
|
-
json (~> 1.4)
|
|
151
|
-
responders (2.1.2)
|
|
152
|
-
railties (>= 4.2.0, < 5.1)
|
|
153
|
-
ruby-openid (2.7.0)
|
|
154
|
-
sprockets (3.6.0)
|
|
155
|
-
concurrent-ruby (~> 1.0)
|
|
156
|
-
rack (> 1, < 3)
|
|
157
|
-
sprockets-rails (3.0.4)
|
|
158
|
-
actionpack (>= 4.0)
|
|
159
|
-
activesupport (>= 4.0)
|
|
160
|
-
sprockets (>= 3.0.0)
|
|
161
|
-
sqlite3 (1.3.11)
|
|
162
|
-
thor (0.19.1)
|
|
163
|
-
thread_safe (0.3.5)
|
|
164
|
-
tzinfo (1.2.2)
|
|
165
|
-
thread_safe (~> 0.1)
|
|
166
|
-
warden (1.2.6)
|
|
167
|
-
rack (>= 1.0)
|
|
168
|
-
webrat (0.7.3)
|
|
169
|
-
nokogiri (>= 1.2.0)
|
|
170
|
-
rack (>= 1.0)
|
|
171
|
-
rack-test (>= 0.5.3)
|
|
172
|
-
websocket-driver (0.6.3)
|
|
173
|
-
websocket-extensions (>= 0.1.0)
|
|
174
|
-
websocket-extensions (0.1.2)
|
|
175
|
-
|
|
176
|
-
PLATFORMS
|
|
177
|
-
ruby
|
|
178
|
-
|
|
179
|
-
DEPENDENCIES
|
|
180
|
-
activemodel-serializers-xml!
|
|
181
|
-
activerecord-jdbc-adapter
|
|
182
|
-
activerecord-jdbcsqlite3-adapter
|
|
183
|
-
devise!
|
|
184
|
-
jruby-openssl
|
|
185
|
-
mocha (~> 1.1)
|
|
186
|
-
oauth2
|
|
187
|
-
omniauth (~> 1.3)
|
|
188
|
-
omniauth-facebook
|
|
189
|
-
omniauth-oauth2 (>= 1.2.0, < 1.5.0)
|
|
190
|
-
omniauth-openid (~> 1.0.1)
|
|
191
|
-
rails (= 5.0.0.beta3)
|
|
192
|
-
rails-controller-testing
|
|
193
|
-
rdoc
|
|
194
|
-
responders (~> 2.1.1)
|
|
195
|
-
sqlite3
|
|
196
|
-
webrat (= 0.7.3)
|
|
197
|
-
|
|
198
|
-
BUNDLED WITH
|
|
199
|
-
1.11.2
|
data/lib/devise/test_helpers.rb
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
module Devise
|
|
2
|
-
# Devise::TestHelpers provides a facility to test controllers in isolation
|
|
3
|
-
# when using ActionController::TestCase allowing you to quickly sign_in or
|
|
4
|
-
# sign_out a user. Do not use Devise::TestHelpers in integration tests.
|
|
5
|
-
#
|
|
6
|
-
# Notice you should not test Warden specific behavior (like Warden callbacks)
|
|
7
|
-
# using Devise::TestHelpers since it is a stub of the actual behavior. Such
|
|
8
|
-
# callbacks should be tested in your integration suite instead.
|
|
9
|
-
module TestHelpers
|
|
10
|
-
def self.included(base)
|
|
11
|
-
base.class_eval do
|
|
12
|
-
setup :setup_controller_for_warden, :warden if respond_to?(:setup)
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# Override process to consider warden.
|
|
17
|
-
def process(*)
|
|
18
|
-
# Make sure we always return @response, a la ActionController::TestCase::Behaviour#process, even if warden interrupts
|
|
19
|
-
_catch_warden { super } # || @response # _catch_warden will setup the @response object
|
|
20
|
-
|
|
21
|
-
# process needs to return the ActionDispath::TestResponse object
|
|
22
|
-
@response
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# We need to set up the environment variables and the response in the controller.
|
|
26
|
-
def setup_controller_for_warden #:nodoc:
|
|
27
|
-
@request.env['action_controller.instance'] = @controller
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Quick access to Warden::Proxy.
|
|
31
|
-
def warden #:nodoc:
|
|
32
|
-
@request.env['warden'] ||= begin
|
|
33
|
-
manager = Warden::Manager.new(nil) do |config|
|
|
34
|
-
config.merge! Devise.warden_config
|
|
35
|
-
end
|
|
36
|
-
Warden::Proxy.new(@request.env, manager)
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# sign_in a given resource by storing its keys in the session.
|
|
41
|
-
# This method bypass any warden authentication callback.
|
|
42
|
-
#
|
|
43
|
-
# Examples:
|
|
44
|
-
#
|
|
45
|
-
# sign_in :user, @user # sign_in(scope, resource)
|
|
46
|
-
# sign_in @user # sign_in(resource)
|
|
47
|
-
#
|
|
48
|
-
def sign_in(resource_or_scope, resource=nil)
|
|
49
|
-
scope ||= Devise::Mapping.find_scope!(resource_or_scope)
|
|
50
|
-
resource ||= resource_or_scope
|
|
51
|
-
warden.instance_variable_get(:@users).delete(scope)
|
|
52
|
-
warden.session_serializer.store(resource, scope)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Sign out a given resource or scope by calling logout on Warden.
|
|
56
|
-
# This method bypass any warden logout callback.
|
|
57
|
-
#
|
|
58
|
-
# Examples:
|
|
59
|
-
#
|
|
60
|
-
# sign_out :user # sign_out(scope)
|
|
61
|
-
# sign_out @user # sign_out(resource)
|
|
62
|
-
#
|
|
63
|
-
def sign_out(resource_or_scope)
|
|
64
|
-
scope = Devise::Mapping.find_scope!(resource_or_scope)
|
|
65
|
-
@controller.instance_variable_set(:"@current_#{scope}", nil)
|
|
66
|
-
user = warden.instance_variable_get(:@users).delete(scope)
|
|
67
|
-
warden.session_serializer.delete(scope, user)
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
protected
|
|
71
|
-
|
|
72
|
-
# Catch warden continuations and handle like the middleware would.
|
|
73
|
-
# Returns nil when interrupted, otherwise the normal result of the block.
|
|
74
|
-
def _catch_warden(&block)
|
|
75
|
-
result = catch(:warden, &block)
|
|
76
|
-
|
|
77
|
-
env = @controller.request.env
|
|
78
|
-
|
|
79
|
-
result ||= {}
|
|
80
|
-
|
|
81
|
-
# Set the response. In production, the rack result is returned
|
|
82
|
-
# from Warden::Manager#call, which the following is modelled on.
|
|
83
|
-
case result
|
|
84
|
-
when Array
|
|
85
|
-
if result.first == 401 && intercept_401?(env) # does this happen during testing?
|
|
86
|
-
_process_unauthenticated(env)
|
|
87
|
-
else
|
|
88
|
-
result
|
|
89
|
-
end
|
|
90
|
-
when Hash
|
|
91
|
-
_process_unauthenticated(env, result)
|
|
92
|
-
else
|
|
93
|
-
result
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
def _process_unauthenticated(env, options = {})
|
|
98
|
-
options[:action] ||= :unauthenticated
|
|
99
|
-
proxy = env['warden']
|
|
100
|
-
result = options[:result] || proxy.result
|
|
101
|
-
|
|
102
|
-
ret = case result
|
|
103
|
-
when :redirect
|
|
104
|
-
body = proxy.message || "You are being redirected to #{proxy.headers['Location']}"
|
|
105
|
-
[proxy.status, proxy.headers, [body]]
|
|
106
|
-
when :custom
|
|
107
|
-
proxy.custom_response
|
|
108
|
-
else
|
|
109
|
-
env["PATH_INFO"] = "/#{options[:action]}"
|
|
110
|
-
env["warden.options"] = options
|
|
111
|
-
Warden::Manager._run_callbacks(:before_failure, env, options)
|
|
112
|
-
|
|
113
|
-
status, headers, response = Devise.warden_config[:failure_app].call(env).to_a
|
|
114
|
-
@controller.response.headers.merge!(headers)
|
|
115
|
-
r_opts = { status: status, content_type: headers["Content-Type"], location: headers["Location"] }
|
|
116
|
-
r_opts[Rails.version.start_with?('5') ? :body : :text] = response.body
|
|
117
|
-
@controller.send :render, r_opts
|
|
118
|
-
nil # causes process return @response
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
# ensure that the controller response is set up. In production, this is
|
|
122
|
-
# not necessary since warden returns the results to rack. However, at
|
|
123
|
-
# testing time, we want the response to be available to the testing
|
|
124
|
-
# framework to verify what would be returned to rack.
|
|
125
|
-
if ret.is_a?(Array)
|
|
126
|
-
# ensure the controller response is set to our response.
|
|
127
|
-
@controller.response ||= @response
|
|
128
|
-
@response.status = ret.first
|
|
129
|
-
@response.headers.clear
|
|
130
|
-
ret.second.each { |k,v| @response[k] = v }
|
|
131
|
-
@response.body = ret.third
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
ret
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
end
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
|
|
3
|
-
class CustomRegistrationsControllerTest < Devise::ControllerTestCase
|
|
4
|
-
tests Custom::RegistrationsController
|
|
5
|
-
|
|
6
|
-
include Devise::TestHelpers
|
|
7
|
-
|
|
8
|
-
setup do
|
|
9
|
-
request.env["devise.mapping"] = Devise.mappings[:user]
|
|
10
|
-
@password = 'password'
|
|
11
|
-
@user = create_user(password: @password, password_confirmation: @password).tap(&:confirm)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
test "yield resource to block on create success" do
|
|
15
|
-
post :create, params: { user: { email: "user@example.org", password: "password", password_confirmation: "password" } }
|
|
16
|
-
assert @controller.create_block_called?, "create failed to yield resource to provided block"
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
test "yield resource to block on create failure" do
|
|
20
|
-
post :create, params: { user: { } }
|
|
21
|
-
assert @controller.create_block_called?, "create failed to yield resource to provided block"
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
test "yield resource to block on update success" do
|
|
25
|
-
sign_in @user
|
|
26
|
-
put :update, params: { user: { current_password: @password } }
|
|
27
|
-
assert @controller.update_block_called?, "update failed to yield resource to provided block"
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
test "yield resource to block on update failure" do
|
|
31
|
-
sign_in @user
|
|
32
|
-
put :update, params: { user: { } }
|
|
33
|
-
assert @controller.update_block_called?, "update failed to yield resource to provided block"
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
test "yield resource to block on new" do
|
|
37
|
-
get :new
|
|
38
|
-
assert @controller.new_block_called?, "new failed to yield resource to provided block"
|
|
39
|
-
end
|
|
40
|
-
end
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
require 'ostruct'
|
|
3
|
-
require 'warden/strategies/base'
|
|
4
|
-
require 'devise/test_helpers'
|
|
5
|
-
|
|
6
|
-
class CustomStrategyController < ActionController::Base
|
|
7
|
-
def new
|
|
8
|
-
warden.authenticate!(:custom_strategy)
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# These tests are to prove that a warden strategy can successfully
|
|
13
|
-
# return a custom response, including a specific status code and
|
|
14
|
-
# custom http response headers. This does work in production,
|
|
15
|
-
# however, at the time of writing this, the Devise test helpers do
|
|
16
|
-
# not recognise the custom response and proceed to calling the
|
|
17
|
-
# Failure App. This makes it impossible to write tests for a
|
|
18
|
-
# strategy that return a custom response with Devise.
|
|
19
|
-
class CustomStrategy < Warden::Strategies::Base
|
|
20
|
-
def authenticate!
|
|
21
|
-
custom_headers = { "X-FOO" => "BAR" }
|
|
22
|
-
response = Rack::Response.new("BAD REQUEST", 400, custom_headers)
|
|
23
|
-
custom! response.finish
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
class CustomStrategyTest < Devise::ControllerTestCase
|
|
28
|
-
tests CustomStrategyController
|
|
29
|
-
|
|
30
|
-
include Devise::TestHelpers
|
|
31
|
-
|
|
32
|
-
setup do
|
|
33
|
-
Warden::Strategies.add(:custom_strategy, CustomStrategy)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
teardown do
|
|
37
|
-
Warden::Strategies._strategies.delete(:custom_strategy)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
test "custom strategy can return its own status code" do
|
|
41
|
-
ret = get :new
|
|
42
|
-
|
|
43
|
-
# check the returned rack array
|
|
44
|
-
# assert ret.is_a?(Array)
|
|
45
|
-
# assert_equal 400, ret.first
|
|
46
|
-
assert ret.is_a?(ActionDispatch::TestResponse)
|
|
47
|
-
|
|
48
|
-
# check the saved response as well. This is purely so that the response is available to the testing framework
|
|
49
|
-
# for verification. In production, the above array would be delivered directly to Rack.
|
|
50
|
-
assert_response 400
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
test "custom strategy can return custom headers" do
|
|
54
|
-
ret = get :new
|
|
55
|
-
|
|
56
|
-
# check the returned rack array
|
|
57
|
-
# assert ret.is_a?(Array)
|
|
58
|
-
# assert_equal ret.third['X-FOO'], 'BAR'
|
|
59
|
-
assert ret.is_a?(ActionDispatch::TestResponse)
|
|
60
|
-
|
|
61
|
-
# check the saved response headers as well.
|
|
62
|
-
assert_equal response.headers['X-FOO'], 'BAR'
|
|
63
|
-
end
|
|
64
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
require 'test_helper'
|
|
2
|
-
|
|
3
|
-
class ApiController < ActionController::Metal
|
|
4
|
-
include Devise::Controllers::Helpers
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
class HelperMethodsTest < Devise::ControllerTestCase
|
|
8
|
-
tests ApiController
|
|
9
|
-
|
|
10
|
-
test 'includes Devise::Controllers::Helpers' do
|
|
11
|
-
assert_includes @controller.class.ancestors, Devise::Controllers::Helpers
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
test 'does not respond_to helper or helper_method' do
|
|
15
|
-
refute_respond_to @controller.class, :helper
|
|
16
|
-
refute_respond_to @controller.class, :helper_method
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
test 'defines methods like current_user' do
|
|
20
|
-
assert_respond_to @controller, :current_user
|
|
21
|
-
end
|
|
22
|
-
end
|