devise 3.5.10 → 4.0.0.rc1
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 +4 -4
- data/.travis.yml +9 -9
- data/CHANGELOG.md +33 -1188
- data/Gemfile +0 -1
- data/Gemfile.lock +15 -18
- data/MIT-LICENSE +1 -1
- data/README.md +20 -10
- data/app/controllers/devise/omniauth_callbacks_controller.rb +4 -4
- data/app/controllers/devise/passwords_controller.rb +2 -2
- data/app/controllers/devise/registrations_controller.rb +2 -2
- data/app/controllers/devise/sessions_controller.rb +4 -4
- data/app/controllers/devise/unlocks_controller.rb +1 -1
- data/app/controllers/devise_controller.rb +11 -7
- data/devise.gemspec +2 -3
- data/gemfiles/Gemfile.rails-4.1-stable +0 -1
- data/gemfiles/Gemfile.rails-4.1-stable.lock +38 -41
- data/gemfiles/Gemfile.rails-4.2-stable +0 -1
- data/gemfiles/Gemfile.rails-4.2-stable.lock +47 -50
- data/gemfiles/Gemfile.rails-5.0-beta +37 -0
- data/gemfiles/Gemfile.rails-5.0-beta.lock +242 -0
- data/lib/devise.rb +8 -8
- data/lib/devise/controllers/helpers.rb +7 -11
- data/lib/devise/failure_app.rb +17 -9
- data/lib/devise/models/authenticatable.rb +5 -1
- data/lib/devise/models/confirmable.rb +3 -4
- data/lib/devise/models/database_authenticatable.rb +1 -0
- data/lib/devise/models/lockable.rb +1 -5
- data/lib/devise/models/rememberable.rb +5 -11
- data/lib/devise/parameter_sanitizer.rb +176 -61
- data/lib/devise/rails.rb +1 -10
- data/lib/devise/rails/routes.rb +25 -14
- data/lib/devise/rails/warden_compat.rb +1 -10
- data/lib/devise/strategies/rememberable.rb +6 -3
- data/lib/devise/test_helpers.rb +9 -4
- data/lib/devise/token_generator.rb +1 -41
- data/lib/devise/version.rb +1 -1
- data/lib/generators/active_record/devise_generator.rb +3 -3
- data/lib/generators/active_record/templates/migration.rb +1 -1
- data/lib/generators/active_record/templates/migration_existing.rb +1 -1
- data/lib/generators/devise/orm_helpers.rb +0 -17
- data/lib/generators/templates/controllers/registrations_controller.rb +4 -4
- data/lib/generators/templates/controllers/sessions_controller.rb +2 -2
- data/lib/generators/templates/devise.rb +4 -5
- data/test/controllers/custom_registrations_controller_test.rb +5 -5
- data/test/controllers/custom_strategy_test.rb +7 -5
- data/test/controllers/helper_methods_test.rb +3 -2
- data/test/controllers/helpers_test.rb +1 -1
- data/test/controllers/inherited_controller_i18n_messages_test.rb +2 -2
- data/test/controllers/internal_helpers_test.rb +8 -10
- data/test/controllers/load_hooks_controller_test.rb +1 -1
- data/test/controllers/passwords_controller_test.rb +4 -3
- data/test/controllers/sessions_controller_test.rb +21 -18
- data/test/controllers/url_helpers_test.rb +1 -1
- data/test/failure_app_test.rb +19 -14
- data/test/generators/active_record_generator_test.rb +0 -26
- data/test/helpers/devise_helper_test.rb +1 -1
- data/test/integration/authenticatable_test.rb +18 -18
- data/test/integration/confirmable_test.rb +5 -5
- data/test/integration/database_authenticatable_test.rb +1 -1
- data/test/integration/http_authenticatable_test.rb +4 -5
- data/test/integration/lockable_test.rb +4 -3
- data/test/integration/omniauthable_test.rb +1 -1
- data/test/integration/recoverable_test.rb +10 -10
- data/test/integration/registerable_test.rb +9 -11
- data/test/integration/rememberable_test.rb +7 -43
- data/test/integration/timeoutable_test.rb +4 -4
- data/test/integration/trackable_test.rb +1 -1
- data/test/models/confirmable_test.rb +5 -13
- data/test/models/lockable_test.rb +0 -22
- data/test/models/rememberable_test.rb +0 -12
- data/test/models/validatable_test.rb +2 -10
- data/test/omniauth/url_helpers_test.rb +1 -2
- data/test/orm/active_record.rb +6 -1
- data/test/parameter_sanitizer_test.rb +103 -53
- data/test/rails_app/app/active_record/user.rb +3 -0
- data/test/rails_app/app/controllers/admins_controller.rb +1 -1
- data/test/rails_app/app/controllers/application_controller.rb +2 -2
- data/test/rails_app/app/controllers/home_controller.rb +5 -1
- data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +2 -2
- data/test/rails_app/app/controllers/users_controller.rb +5 -5
- data/test/rails_app/config/application.rb +1 -1
- data/test/rails_app/config/boot.rb +3 -3
- data/test/rails_app/config/environments/test.rb +6 -1
- data/test/rails_app/config/initializers/secret_token.rb +1 -6
- data/test/routes_test.rb +26 -11
- data/test/support/http_method_compatibility.rb +51 -0
- data/test/support/webrat/integrations/rails.rb +9 -0
- data/test/test_helpers_test.rb +3 -3
- metadata +13 -31
- data/gemfiles/Gemfile.rails-3.2-stable +0 -29
- data/gemfiles/Gemfile.rails-3.2-stable.lock +0 -172
- data/gemfiles/Gemfile.rails-4.0-stable +0 -30
- data/gemfiles/Gemfile.rails-4.0-stable.lock +0 -166
- data/script/cached-bundle +0 -49
- data/script/s3-put +0 -71
- data/test/time_helpers.rb +0 -137
|
@@ -325,26 +325,4 @@ class LockableTest < ActiveSupport::TestCase
|
|
|
325
325
|
user.lock_access!
|
|
326
326
|
assert_equal :locked, user.unauthenticated_message
|
|
327
327
|
end
|
|
328
|
-
|
|
329
|
-
test 'unlock_strategy_enabled? should return true for both, email, and time strategies if :both is used' do
|
|
330
|
-
swap Devise, unlock_strategy: :both do
|
|
331
|
-
user = create_user
|
|
332
|
-
assert_equal true, user.unlock_strategy_enabled?(:both)
|
|
333
|
-
assert_equal true, user.unlock_strategy_enabled?(:time)
|
|
334
|
-
assert_equal true, user.unlock_strategy_enabled?(:email)
|
|
335
|
-
assert_equal false, user.unlock_strategy_enabled?(:none)
|
|
336
|
-
assert_equal false, user.unlock_strategy_enabled?(:an_undefined_strategy)
|
|
337
|
-
end
|
|
338
|
-
end
|
|
339
|
-
|
|
340
|
-
test 'unlock_strategy_enabled? should return true only for the configured strategy' do
|
|
341
|
-
swap Devise, unlock_strategy: :email do
|
|
342
|
-
user = create_user
|
|
343
|
-
assert_equal false, user.unlock_strategy_enabled?(:both)
|
|
344
|
-
assert_equal false, user.unlock_strategy_enabled?(:time)
|
|
345
|
-
assert_equal true, user.unlock_strategy_enabled?(:email)
|
|
346
|
-
assert_equal false, user.unlock_strategy_enabled?(:none)
|
|
347
|
-
assert_equal false, user.unlock_strategy_enabled?(:an_undefined_strategy)
|
|
348
|
-
end
|
|
349
|
-
end
|
|
350
328
|
end
|
|
@@ -16,18 +16,6 @@ class RememberableTest < ActiveSupport::TestCase
|
|
|
16
16
|
assert user.remember_created_at
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
test 'remember_me should not generate a new token if valid token exists' do
|
|
20
|
-
user = create_user
|
|
21
|
-
user.singleton_class.send(:attr_accessor, :remember_token)
|
|
22
|
-
User.to_adapter.expects(:find_first).returns(nil)
|
|
23
|
-
|
|
24
|
-
user.remember_me!
|
|
25
|
-
existing_token = user.remember_token
|
|
26
|
-
|
|
27
|
-
user.remember_me!
|
|
28
|
-
assert_equal existing_token, user.remember_token
|
|
29
|
-
end
|
|
30
|
-
|
|
31
19
|
test 'forget_me should not clear remember token if using salt' do
|
|
32
20
|
user = create_user
|
|
33
21
|
user.remember_me!
|
|
@@ -57,11 +57,7 @@ class ValidatableTest < ActiveSupport::TestCase
|
|
|
57
57
|
user = new_user(password: 'new_password', password_confirmation: 'blabla')
|
|
58
58
|
assert user.invalid?
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
assert_equal 'doesn\'t match Password', user.errors[:password_confirmation].join
|
|
62
|
-
else
|
|
63
|
-
assert_equal 'doesn\'t match confirmation', user.errors[:password].join
|
|
64
|
-
end
|
|
60
|
+
assert_equal 'doesn\'t match Password', user.errors[:password_confirmation].join
|
|
65
61
|
end
|
|
66
62
|
|
|
67
63
|
test 'should require password when updating/resetting password' do
|
|
@@ -79,11 +75,7 @@ class ValidatableTest < ActiveSupport::TestCase
|
|
|
79
75
|
user.password_confirmation = 'another_password'
|
|
80
76
|
assert user.invalid?
|
|
81
77
|
|
|
82
|
-
|
|
83
|
-
assert_equal 'doesn\'t match Password', user.errors[:password_confirmation].join
|
|
84
|
-
else
|
|
85
|
-
assert_equal 'doesn\'t match confirmation', user.errors[:password].join
|
|
86
|
-
end
|
|
78
|
+
assert_equal 'doesn\'t match Password', user.errors[:password_confirmation].join
|
|
87
79
|
end
|
|
88
80
|
|
|
89
81
|
test 'should require a password with minimum of 7 characters' do
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
3
|
class OmniAuthRoutesTest < ActionController::TestCase
|
|
4
|
-
ExpectedUrlGeneratiorError =
|
|
5
|
-
ActionController::UrlGenerationError : ActionController::RoutingError
|
|
4
|
+
ExpectedUrlGeneratiorError = ActionController::UrlGenerationError
|
|
6
5
|
|
|
7
6
|
tests ApplicationController
|
|
8
7
|
|
data/test/orm/active_record.rb
CHANGED
|
@@ -5,6 +5,11 @@ ActiveRecord::Base.include_root_in_json = true
|
|
|
5
5
|
ActiveRecord::Migrator.migrate(File.expand_path("../../rails_app/db/migrate/", __FILE__))
|
|
6
6
|
|
|
7
7
|
class ActiveSupport::TestCase
|
|
8
|
-
|
|
8
|
+
if Rails.version >= '5.0.0'
|
|
9
|
+
self.use_transactional_tests = true
|
|
10
|
+
else
|
|
11
|
+
self.use_transactional_fixtures = true
|
|
12
|
+
end
|
|
13
|
+
|
|
9
14
|
self.use_instantiated_fixtures = false
|
|
10
15
|
end
|
|
@@ -1,81 +1,131 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
require 'devise/parameter_sanitizer'
|
|
3
3
|
|
|
4
|
-
class
|
|
4
|
+
class ParameterSanitizerTest < ActiveSupport::TestCase
|
|
5
5
|
def sanitizer(params)
|
|
6
|
-
|
|
6
|
+
params = ActionController::Parameters.new(params)
|
|
7
|
+
Devise::ParameterSanitizer.new(User, :user, params)
|
|
7
8
|
end
|
|
8
9
|
|
|
9
|
-
test '
|
|
10
|
-
sanitizer = sanitizer(user
|
|
11
|
-
|
|
10
|
+
test 'permits the default parameters for sign in' do
|
|
11
|
+
sanitizer = sanitizer('user' => { 'email' => 'jose' })
|
|
12
|
+
sanitized = sanitizer.sanitize(:sign_in)
|
|
13
|
+
|
|
14
|
+
assert_equal({ 'email' => 'jose' }, sanitized)
|
|
12
15
|
end
|
|
13
|
-
end
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
test 'permits the default parameters for sign up' do
|
|
18
|
+
sanitizer = sanitizer('user' => { 'email' => 'jose', 'role' => 'invalid' })
|
|
19
|
+
sanitized = sanitizer.sanitize(:sign_up)
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
params = ActionController::Parameters.new(params)
|
|
21
|
-
Devise::ParameterSanitizer.new(User, :user, params)
|
|
22
|
-
end
|
|
21
|
+
assert_equal({ 'email' => 'jose' }, sanitized)
|
|
22
|
+
end
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
end
|
|
24
|
+
test 'permits the default parameters for account update' do
|
|
25
|
+
sanitizer = sanitizer('user' => { 'email' => 'jose', 'role' => 'invalid' })
|
|
26
|
+
sanitized = sanitizer.sanitize(:account_update)
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid" })
|
|
32
|
-
assert_equal({ "email" => "jose", "password" => "invalid" }, sanitizer.sanitize(:sign_in))
|
|
33
|
-
end
|
|
34
|
-
end
|
|
28
|
+
assert_equal({ 'email' => 'jose' }, sanitized)
|
|
29
|
+
end
|
|
35
30
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
31
|
+
test 'permits news parameters for an existing action' do
|
|
32
|
+
sanitizer = sanitizer('user' => { 'username' => 'jose' })
|
|
33
|
+
sanitizer.permit(:sign_in, keys: [:username])
|
|
34
|
+
sanitized = sanitizer.sanitize(:sign_in)
|
|
35
|
+
|
|
36
|
+
assert_equal({ 'username' => 'jose' }, sanitized)
|
|
37
|
+
end
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
test 'permits news parameters for an existing action with a block' do
|
|
40
|
+
sanitizer = sanitizer('user' => { 'username' => 'jose' })
|
|
41
|
+
sanitizer.permit(:sign_in) do |user|
|
|
42
|
+
user.permit(:username)
|
|
44
43
|
end
|
|
45
44
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
sanitized = sanitizer.sanitize(:sign_in)
|
|
46
|
+
|
|
47
|
+
assert_equal({ 'username' => 'jose' }, sanitized)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
test 'permit parameters for new actions' do
|
|
51
|
+
sanitizer = sanitizer('user' => { 'email' => 'jose@omglol', 'name' => 'Jose' })
|
|
52
|
+
sanitizer.permit(:invite_user, keys: [:email, :name])
|
|
53
|
+
|
|
54
|
+
sanitized = sanitizer.sanitize(:invite_user)
|
|
55
|
+
|
|
56
|
+
assert_equal({ 'email' => 'jose@omglol', 'name' => 'Jose' }, sanitized)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
test 'fails when we do not have any permitted parameters for the action' do
|
|
60
|
+
sanitizer = sanitizer('user' => { 'email' => 'jose', 'password' => 'invalid' })
|
|
61
|
+
|
|
62
|
+
assert_raise NotImplementedError do
|
|
63
|
+
sanitizer.sanitize(:unknown)
|
|
50
64
|
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
test 'removes permitted parameters' do
|
|
68
|
+
sanitizer = sanitizer('user' => { 'email' => 'jose@omglol', 'username' => 'jose' })
|
|
51
69
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
70
|
+
sanitizer.permit(:sign_in, keys: [:username], except: [:email])
|
|
71
|
+
sanitized = sanitizer.sanitize(:sign_in)
|
|
72
|
+
|
|
73
|
+
assert_equal({ 'username' => 'jose' }, sanitized)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
class DeprecatedParameterSanitizerAPITest < ActiveSupport::TestCase
|
|
78
|
+
class CustomSanitizer < Devise::ParameterSanitizer
|
|
79
|
+
def sign_in
|
|
80
|
+
default_params.permit(:username)
|
|
56
81
|
end
|
|
82
|
+
end
|
|
57
83
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
84
|
+
def sanitizer(params)
|
|
85
|
+
params = ActionController::Parameters.new(params)
|
|
86
|
+
Devise::ParameterSanitizer.new(User, :user, params)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
test 'overriding instance methods have precedence over the default sanitized attributes' do
|
|
90
|
+
assert_deprecated do
|
|
91
|
+
params = ActionController::Parameters.new(user: { "username" => "jose", "name" => "Jose" })
|
|
92
|
+
sanitizer = CustomSanitizer.new(User, :user, params)
|
|
93
|
+
|
|
94
|
+
sanitized = sanitizer.sanitize(:sign_in)
|
|
95
|
+
|
|
96
|
+
assert_equal({ "username" => "jose" }, sanitized)
|
|
63
97
|
end
|
|
98
|
+
end
|
|
64
99
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
100
|
+
test 'adding new parameters by mutating the Array' do
|
|
101
|
+
assert_deprecated do
|
|
102
|
+
sanitizer = sanitizer('user' => { 'username' => 'jose' })
|
|
103
|
+
sanitizer.for(:sign_in) << :username
|
|
104
|
+
sanitized = sanitizer.sanitize(:sign_in)
|
|
105
|
+
|
|
106
|
+
assert_equal({ 'username' => 'jose' }, sanitized)
|
|
70
107
|
end
|
|
108
|
+
end
|
|
71
109
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
110
|
+
test 'adding new parameters with a block' do
|
|
111
|
+
assert_deprecated do
|
|
112
|
+
sanitizer = sanitizer('user' => { 'username' => 'jose' })
|
|
113
|
+
sanitizer.for(:sign_in) { |user| user.permit(:username) }
|
|
75
114
|
|
|
76
|
-
|
|
115
|
+
sanitized = sanitizer.sanitize(:sign_in)
|
|
116
|
+
|
|
117
|
+
assert_equal({ 'username' => 'jose' }, sanitized)
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
test 'removing multiple default parameters' do
|
|
122
|
+
assert_deprecated do
|
|
123
|
+
sanitizer = sanitizer('user' => { 'email' => 'jose', 'password' => 'invalid', 'remember_me' => '1' })
|
|
124
|
+
sanitizer.for(:sign_in).delete(:email)
|
|
125
|
+
sanitizer.for(:sign_in).delete(:password)
|
|
126
|
+
sanitized = sanitizer.sanitize(:sign_in)
|
|
77
127
|
|
|
78
|
-
|
|
128
|
+
assert_equal({ 'remember_me' => '1' }, sanitized)
|
|
79
129
|
end
|
|
80
130
|
end
|
|
81
131
|
end
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
require 'shared_user'
|
|
2
|
+
require 'active_model/serializers/xml' if Devise.rails5?
|
|
3
|
+
require 'active_model-serializers' if Devise.rails5?
|
|
2
4
|
|
|
3
5
|
class User < ActiveRecord::Base
|
|
4
6
|
include Shim
|
|
5
7
|
include SharedUser
|
|
8
|
+
include ActiveModel::Serializers::Xml if Devise.rails5?
|
|
6
9
|
end
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
class ApplicationController < ActionController::Base
|
|
5
5
|
protect_from_forgery
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
before_action :current_user, unless: :devise_controller?
|
|
7
|
+
before_action :authenticate_user!, if: :devise_controller?
|
|
8
8
|
respond_to *Mime::SET.map(&:to_sym)
|
|
9
9
|
|
|
10
10
|
devise_group :commenter, contains: [:user, :admin]
|
|
@@ -20,6 +20,10 @@ class HomeController < ApplicationController
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def unauthenticated
|
|
23
|
-
|
|
23
|
+
if Devise.rails5?
|
|
24
|
+
render body: "unauthenticated", status: :unauthorized
|
|
25
|
+
else
|
|
26
|
+
render text: "unauthenticated", status: :unauthorized
|
|
27
|
+
end
|
|
24
28
|
end
|
|
25
29
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
|
2
2
|
def facebook
|
|
3
|
-
data = env["omniauth.auth"]
|
|
3
|
+
data = request.respond_to?(:get_header) ? request.get_header("omniauth.auth") : env["omniauth.auth"]
|
|
4
4
|
session["devise.facebook_data"] = data["extra"]["user_hash"]
|
|
5
5
|
render json: data
|
|
6
6
|
end
|
|
@@ -9,6 +9,6 @@ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
|
|
9
9
|
user = User.to_adapter.find_first(email: 'user@test.com')
|
|
10
10
|
user.remember_me = true
|
|
11
11
|
sign_in user
|
|
12
|
-
render
|
|
12
|
+
render (Devise.rails5? ? :body : :text) => ""
|
|
13
13
|
end
|
|
14
14
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
class UsersController < ApplicationController
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
prepend_before_action :current_user, only: :exhibit
|
|
3
|
+
before_action :authenticate_user!, except: [:accept, :exhibit]
|
|
4
4
|
respond_to :html, :xml
|
|
5
5
|
|
|
6
6
|
def index
|
|
@@ -13,7 +13,7 @@ class UsersController < ApplicationController
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def update_form
|
|
16
|
-
render
|
|
16
|
+
render (Devise.rails5? ? :body : :text) => 'Update'
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def accept
|
|
@@ -21,11 +21,11 @@ class UsersController < ApplicationController
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def exhibit
|
|
24
|
-
render
|
|
24
|
+
render (Devise.rails5? ? :body : :text) => current_user ? "User is authenticated" : "User is not authenticated"
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def expire
|
|
28
28
|
user_session['last_request_at'] = 31.minutes.ago.utc
|
|
29
|
-
render
|
|
29
|
+
render (Devise.rails5? ? :body : :text) => 'User will be expired on next request'
|
|
30
30
|
end
|
|
31
31
|
end
|
|
@@ -28,7 +28,7 @@ module RailsApp
|
|
|
28
28
|
|
|
29
29
|
# Configure sensitive parameters which will be filtered from the log file.
|
|
30
30
|
config.filter_parameters << :password
|
|
31
|
-
config.assets.enabled = false
|
|
31
|
+
# config.assets.enabled = false
|
|
32
32
|
|
|
33
33
|
config.action_mailer.default_url_options = { host: "localhost", port: 3000 }
|
|
34
34
|
|
|
@@ -3,9 +3,9 @@ unless defined?(DEVISE_ORM)
|
|
|
3
3
|
end
|
|
4
4
|
|
|
5
5
|
module Devise
|
|
6
|
-
# Detection for minor differences between Rails
|
|
7
|
-
def self.
|
|
8
|
-
Rails.version.start_with? '
|
|
6
|
+
# Detection for minor differences between Rails 4 and 5 in tests.
|
|
7
|
+
def self.rails5?
|
|
8
|
+
Rails.version.start_with? '5'
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -19,7 +19,12 @@ RailsApp::Application.configure do
|
|
|
19
19
|
else
|
|
20
20
|
config.serve_static_assets = true
|
|
21
21
|
end
|
|
22
|
-
|
|
22
|
+
|
|
23
|
+
if Rails.version >= "5.0.0"
|
|
24
|
+
config.public_file_server.headers = {'Cache-Control' => 'public, max-age=3600'}
|
|
25
|
+
else
|
|
26
|
+
config.static_cache_control = "public, max-age=3600"
|
|
27
|
+
end
|
|
23
28
|
|
|
24
29
|
# Show full error reports and disable caching.
|
|
25
30
|
config.consider_all_requests_local = true
|
|
@@ -1,8 +1,3 @@
|
|
|
1
1
|
config = Rails.application.config
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
config.secret_key_base = 'd588e99efff13a86461fd6ab82327823ad2f8feb5dc217ce652cdd9f0dfc5eb4b5a62a92d24d2574d7d51dfb1ea8dd453ea54e00cf672159a13104a135422a10'
|
|
5
|
-
else
|
|
6
|
-
config.secret_token = 'ea942c41850d502f2c8283e26bdc57829f471bb18224ddff0a192c4f32cdf6cb5aa0d82b3a7a7adbeb640c4b06f3aa1cd5f098162d8240f669b39d6b49680571'
|
|
7
|
-
config.session_store :cookie_store, key: "_my_app"
|
|
8
|
-
end
|
|
3
|
+
config.secret_key_base = 'd588e99efff13a86461fd6ab82327823ad2f8feb5dc217ce652cdd9f0dfc5eb4b5a62a92d24d2574d7d51dfb1ea8dd453ea54e00cf672159a13104a135422a10'
|
data/test/routes_test.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
ExpectedRoutingError =
|
|
3
|
+
ExpectedRoutingError = MiniTest::Assertion
|
|
4
4
|
|
|
5
5
|
class DefaultRoutingTest < ActionController::TestCase
|
|
6
6
|
test 'map new user session' do
|
|
@@ -202,37 +202,52 @@ class CustomizedRoutingTest < ActionController::TestCase
|
|
|
202
202
|
end
|
|
203
203
|
|
|
204
204
|
test 'map with format false for sessions' do
|
|
205
|
-
|
|
205
|
+
expected_params = {controller: 'devise/sessions', action: 'new'}
|
|
206
|
+
expected_params[:format] = false if Devise.rails5?
|
|
207
|
+
|
|
208
|
+
assert_recognizes(expected_params, {path: '/htmlonly_admin/sign_in', method: :get})
|
|
206
209
|
assert_raise ExpectedRoutingError do
|
|
207
|
-
assert_recognizes(
|
|
210
|
+
assert_recognizes(expected_params, {path: '/htmlonly_admin/sign_in.xml', method: :get})
|
|
208
211
|
end
|
|
209
212
|
end
|
|
210
213
|
|
|
211
214
|
test 'map with format false for passwords' do
|
|
212
|
-
|
|
215
|
+
expected_params = {controller: 'devise/passwords', action: 'create'}
|
|
216
|
+
expected_params[:format] = false if Devise.rails5?
|
|
217
|
+
|
|
218
|
+
assert_recognizes(expected_params, {path: '/htmlonly_admin/password', method: :post})
|
|
213
219
|
assert_raise ExpectedRoutingError do
|
|
214
|
-
assert_recognizes(
|
|
220
|
+
assert_recognizes(expected_params, {path: '/htmlonly_admin/password.xml', method: :post})
|
|
215
221
|
end
|
|
216
222
|
end
|
|
217
223
|
|
|
218
224
|
test 'map with format false for registrations' do
|
|
219
|
-
|
|
225
|
+
expected_params = {controller: 'devise/registrations', action: 'new'}
|
|
226
|
+
expected_params[:format] = false if Devise.rails5?
|
|
227
|
+
|
|
228
|
+
assert_recognizes(expected_params, {path: '/htmlonly_admin/sign_up', method: :get})
|
|
220
229
|
assert_raise ExpectedRoutingError do
|
|
221
|
-
assert_recognizes(
|
|
230
|
+
assert_recognizes(expected_params, {path: '/htmlonly_admin/sign_up.xml', method: :get})
|
|
222
231
|
end
|
|
223
232
|
end
|
|
224
233
|
|
|
225
234
|
test 'map with format false for confirmations' do
|
|
226
|
-
|
|
235
|
+
expected_params = {controller: 'devise/confirmations', action: 'show'}
|
|
236
|
+
expected_params[:format] = false if Devise.rails5?
|
|
237
|
+
|
|
238
|
+
assert_recognizes(expected_params, {path: '/htmlonly_users/confirmation', method: :get})
|
|
227
239
|
assert_raise ExpectedRoutingError do
|
|
228
|
-
assert_recognizes(
|
|
240
|
+
assert_recognizes(expected_params, {path: '/htmlonly_users/confirmation.xml', method: :get})
|
|
229
241
|
end
|
|
230
242
|
end
|
|
231
243
|
|
|
232
244
|
test 'map with format false for unlocks' do
|
|
233
|
-
|
|
245
|
+
expected_params = {controller: 'devise/unlocks', action: 'show'}
|
|
246
|
+
expected_params[:format] = false if Devise.rails5?
|
|
247
|
+
|
|
248
|
+
assert_recognizes(expected_params, {path: '/htmlonly_users/unlock', method: :get})
|
|
234
249
|
assert_raise ExpectedRoutingError do
|
|
235
|
-
assert_recognizes(
|
|
250
|
+
assert_recognizes(expected_params, {path: '/htmlonly_users/unlock.xml', method: :get})
|
|
236
251
|
end
|
|
237
252
|
end
|
|
238
253
|
|