devise 3.0.0 → 3.1.0
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.
Potentially problematic release.
This version of devise might be problematic. Click here for more details.
- data/{CHANGELOG.rdoc → CHANGELOG.md} +67 -25
- data/Gemfile.lock +13 -12
- data/README.md +19 -17
- data/app/controllers/devise/confirmations_controller.rb +11 -3
- data/app/controllers/devise/registrations_controller.rb +9 -3
- data/app/controllers/devise/sessions_controller.rb +1 -1
- data/app/mailers/devise/mailer.rb +6 -3
- data/app/views/devise/mailer/confirmation_instructions.html.erb +1 -1
- data/app/views/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/devise/mailer/unlock_instructions.html.erb +1 -1
- data/app/views/devise/shared/_links.erb +2 -2
- data/config/locales/en.yml +4 -3
- data/devise.gemspec +1 -0
- data/gemfiles/Gemfile.rails-3.2.x.lock +47 -44
- data/lib/devise/controllers/helpers.rb +1 -0
- data/lib/devise/controllers/rememberable.rb +1 -0
- data/lib/devise/hooks/csrf_cleaner.rb +5 -0
- data/lib/devise/hooks/lockable.rb +1 -1
- data/lib/devise/hooks/rememberable.rb +2 -1
- data/lib/devise/mailers/helpers.rb +0 -6
- data/lib/devise/models/authenticatable.rb +9 -16
- data/lib/devise/models/confirmable.rb +34 -43
- data/lib/devise/models/lockable.rb +15 -17
- data/lib/devise/models/recoverable.rb +21 -27
- data/lib/devise/models/rememberable.rb +6 -2
- data/lib/devise/models/timeoutable.rb +1 -1
- data/lib/devise/models/token_authenticatable.rb +4 -1
- data/lib/devise/models.rb +8 -12
- data/lib/devise/parameter_sanitizer.rb +49 -19
- data/lib/devise/rails/routes.rb +12 -9
- data/lib/devise/rails/warden_compat.rb +10 -2
- data/lib/devise/rails.rb +7 -11
- data/lib/devise/strategies/authenticatable.rb +0 -12
- data/lib/devise/token_generator.rb +70 -0
- data/lib/devise/version.rb +1 -1
- data/lib/devise.rb +23 -12
- data/lib/generators/active_record/devise_generator.rb +2 -5
- data/lib/generators/active_record/templates/migration.rb +0 -1
- data/lib/generators/active_record/templates/migration_existing.rb +0 -1
- data/lib/generators/devise/orm_helpers.rb +25 -6
- data/lib/generators/mongoid/devise_generator.rb +2 -2
- data/lib/generators/templates/devise.rb +21 -9
- data/test/controllers/helpers_test.rb +1 -1
- data/test/controllers/passwords_controller_test.rb +4 -5
- data/test/failure_app_test.rb +1 -1
- data/test/generators/active_record_generator_test.rb +31 -1
- data/test/integration/authenticatable_test.rb +15 -1
- data/test/integration/confirmable_test.rb +29 -42
- data/test/integration/http_authenticatable_test.rb +1 -1
- data/test/integration/lockable_test.rb +11 -14
- data/test/integration/recoverable_test.rb +23 -24
- data/test/integration/rememberable_test.rb +15 -13
- data/test/mailers/confirmation_instructions_test.rb +6 -2
- data/test/mailers/reset_password_instructions_test.rb +6 -2
- data/test/mailers/unlock_instructions_test.rb +6 -2
- data/test/models/confirmable_test.rb +38 -27
- data/test/models/lockable_test.rb +15 -5
- data/test/models/recoverable_test.rb +20 -48
- data/test/models/rememberable_test.rb +8 -0
- data/test/models/timeoutable_test.rb +5 -0
- data/test/models_test.rb +0 -19
- data/test/parameter_sanitizer_test.rb +23 -9
- data/test/rails_app/config/initializers/devise.rb +3 -0
- data/test/rails_app/lib/shared_admin.rb +3 -0
- data/test/rails_app/lib/shared_user.rb +4 -0
- data/test/support/helpers.rb +0 -21
- metadata +42 -26
- data/app/views/devise/_links.erb +0 -3
@@ -139,10 +139,20 @@ class LockableTest < ActiveSupport::TestCase
|
|
139
139
|
end
|
140
140
|
end
|
141
141
|
|
142
|
-
test 'should find and unlock a user automatically' do
|
142
|
+
test 'DEPRECATED: should find and unlock a user automatically' do
|
143
|
+
swap Devise, allow_insecure_token_lookup: true do
|
144
|
+
user = create_user
|
145
|
+
user.lock_access!
|
146
|
+
locked_user = User.unlock_access_by_token(user.unlock_token)
|
147
|
+
assert_equal locked_user, user
|
148
|
+
assert_not user.reload.access_locked?
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
test 'should find and unlock a user automatically based on raw token' do
|
143
153
|
user = create_user
|
144
|
-
user.
|
145
|
-
locked_user = User.unlock_access_by_token(
|
154
|
+
raw = user.send_unlock_instructions
|
155
|
+
locked_user = User.unlock_access_by_token(raw)
|
146
156
|
assert_equal locked_user, user
|
147
157
|
assert_not user.reload.access_locked?
|
148
158
|
end
|
@@ -195,7 +205,7 @@ class LockableTest < ActiveSupport::TestCase
|
|
195
205
|
|
196
206
|
test 'should not be able to send instructions if the user is not locked' do
|
197
207
|
user = create_user
|
198
|
-
assert_not user.
|
208
|
+
assert_not user.resend_unlock_instructions
|
199
209
|
assert_not user.access_locked?
|
200
210
|
assert_equal 'was not locked', user.errors[:email].join
|
201
211
|
end
|
@@ -203,7 +213,7 @@ class LockableTest < ActiveSupport::TestCase
|
|
203
213
|
test 'should not be able to send instructions if the user if not locked and have username as unlock key' do
|
204
214
|
swap Devise, :unlock_keys => [:username] do
|
205
215
|
user = create_user
|
206
|
-
assert_not user.
|
216
|
+
assert_not user.resend_unlock_instructions
|
207
217
|
assert_not user.access_locked?
|
208
218
|
assert_equal 'was not locked', user.errors[:username].join
|
209
219
|
end
|
@@ -108,11 +108,21 @@ class RecoverableTest < ActiveSupport::TestCase
|
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
|
-
test 'should find a user to reset his password based on reset_password_token' do
|
111
|
+
test 'DEPRECATED: should find a user to reset his password based on reset_password_token' do
|
112
|
+
swap Devise, allow_insecure_token_lookup: true do
|
113
|
+
user = create_user
|
114
|
+
user.send_reset_password_instructions
|
115
|
+
|
116
|
+
reset_password_user = User.reset_password_by_token(:reset_password_token => user.reset_password_token)
|
117
|
+
assert_equal reset_password_user, user
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
test 'should find a user to reset his password based on the raw token' do
|
112
122
|
user = create_user
|
113
|
-
user.
|
123
|
+
raw = user.send_reset_password_instructions
|
114
124
|
|
115
|
-
reset_password_user = User.reset_password_by_token(:reset_password_token =>
|
125
|
+
reset_password_user = User.reset_password_by_token(:reset_password_token => raw)
|
116
126
|
assert_equal reset_password_user, user
|
117
127
|
end
|
118
128
|
|
@@ -130,9 +140,9 @@ class RecoverableTest < ActiveSupport::TestCase
|
|
130
140
|
|
131
141
|
test 'should return a new record with errors if password is blank' do
|
132
142
|
user = create_user
|
133
|
-
user.
|
143
|
+
raw = user.send_reset_password_instructions
|
134
144
|
|
135
|
-
reset_password_user = User.reset_password_by_token(:reset_password_token =>
|
145
|
+
reset_password_user = User.reset_password_by_token(:reset_password_token => raw, :password => '')
|
136
146
|
assert_not reset_password_user.errors.empty?
|
137
147
|
assert_match "can't be blank", reset_password_user.errors[:password].join
|
138
148
|
end
|
@@ -140,10 +150,10 @@ class RecoverableTest < ActiveSupport::TestCase
|
|
140
150
|
test 'should reset successfully user password given the new password and confirmation' do
|
141
151
|
user = create_user
|
142
152
|
old_password = user.password
|
143
|
-
user.
|
153
|
+
raw = user.send_reset_password_instructions
|
144
154
|
|
145
155
|
User.reset_password_by_token(
|
146
|
-
:reset_password_token =>
|
156
|
+
:reset_password_token => raw,
|
147
157
|
:password => 'new_password',
|
148
158
|
:password_confirmation => 'new_password'
|
149
159
|
)
|
@@ -153,38 +163,17 @@ class RecoverableTest < ActiveSupport::TestCase
|
|
153
163
|
assert user.valid_password?('new_password')
|
154
164
|
end
|
155
165
|
|
156
|
-
test 'should not reset reset password token during reset_password_within time' do
|
157
|
-
swap Devise, :reset_password_within => 1.hour do
|
158
|
-
user = create_user
|
159
|
-
user.send_reset_password_instructions
|
160
|
-
3.times do
|
161
|
-
token = user.reset_password_token
|
162
|
-
user.send_reset_password_instructions
|
163
|
-
assert_equal token, user.reset_password_token
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
167
|
-
|
168
|
-
test 'should reset reset password token after reset_password_within time' do
|
169
|
-
swap Devise, :reset_password_within => 1.hour do
|
170
|
-
user = create_user
|
171
|
-
user.reset_password_sent_at = 2.days.ago
|
172
|
-
token = user.reset_password_token
|
173
|
-
user.send_reset_password_instructions
|
174
|
-
assert_not_equal token, user.reset_password_token
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
166
|
test 'should not reset password after reset_password_within time' do
|
179
167
|
swap Devise, :reset_password_within => 1.hour do
|
180
168
|
user = create_user
|
169
|
+
raw = user.send_reset_password_instructions
|
170
|
+
|
181
171
|
old_password = user.password
|
182
|
-
user.ensure_reset_password_token!
|
183
172
|
user.reset_password_sent_at = 2.days.ago
|
184
173
|
user.save!
|
185
174
|
|
186
175
|
reset_password_user = User.reset_password_by_token(
|
187
|
-
:reset_password_token =>
|
176
|
+
:reset_password_token => raw,
|
188
177
|
:password => 'new_password',
|
189
178
|
:password_confirmation => 'new_password'
|
190
179
|
)
|
@@ -201,22 +190,5 @@ class RecoverableTest < ActiveSupport::TestCase
|
|
201
190
|
:reset_password_sent_at,
|
202
191
|
:reset_password_token
|
203
192
|
]
|
204
|
-
end
|
205
|
-
|
206
|
-
test 'should generate a new token when a valid one does not exist' do
|
207
|
-
user = create_user
|
208
|
-
assert_nil user.reset_password_token
|
209
|
-
|
210
|
-
user.ensure_reset_password_token!
|
211
|
-
assert_not_nil user.reset_password_token
|
212
|
-
end
|
213
|
-
|
214
|
-
test 'should not generate a new token when a valid one exists' do
|
215
|
-
user = create_user
|
216
|
-
user.send :generate_reset_password_token!
|
217
|
-
assert_not_nil user.reset_password_token
|
218
|
-
old = user.reset_password_token
|
219
|
-
user.ensure_reset_password_token!
|
220
|
-
assert_equal user.reset_password_token, old
|
221
193
|
end
|
222
194
|
end
|
@@ -22,6 +22,14 @@ class RememberableTest < ActiveSupport::TestCase
|
|
22
22
|
user.forget_me!
|
23
23
|
end
|
24
24
|
|
25
|
+
test 'can generate remember token' do
|
26
|
+
user = create_user
|
27
|
+
user.singleton_class.send(:attr_accessor, :remember_token)
|
28
|
+
User.to_adapter.expects(:find_first).returns(nil)
|
29
|
+
user.remember_me!
|
30
|
+
assert user.remember_token
|
31
|
+
end
|
32
|
+
|
25
33
|
test 'serialize into cookie' do
|
26
34
|
user = create_user
|
27
35
|
user.remember_me!
|
@@ -43,4 +43,9 @@ class TimeoutableTest < ActiveSupport::TestCase
|
|
43
43
|
test 'required_fields should contain the fields that Devise uses' do
|
44
44
|
assert_same_content Devise::Models::Timeoutable.required_fields(User), []
|
45
45
|
end
|
46
|
+
|
47
|
+
test 'should not raise error if remember_created_at is not empty and rememberable is disabled' do
|
48
|
+
user = create_admin(remember_created_at: Time.current)
|
49
|
+
assert user.timedout?(31.minutes.ago)
|
50
|
+
end
|
46
51
|
end
|
data/test/models_test.rb
CHANGED
@@ -141,23 +141,4 @@ class CheckFieldsTest < ActiveSupport::TestCase
|
|
141
141
|
Devise::Models.check_fields!(Magician)
|
142
142
|
end
|
143
143
|
end
|
144
|
-
|
145
|
-
test "doesn't raise a NoMethodError exception when the module doesn't have a required_field(klass) class method" do
|
146
|
-
driver = Class.new do
|
147
|
-
extend Devise::Models
|
148
|
-
|
149
|
-
def self.before_validation(instance)
|
150
|
-
end
|
151
|
-
|
152
|
-
attr_accessor :encrypted_password, :email
|
153
|
-
|
154
|
-
devise :database_authenticatable
|
155
|
-
end
|
156
|
-
|
157
|
-
swap_module_method_existence Devise::Models::DatabaseAuthenticatable, :required_fields do
|
158
|
-
assert_deprecated do
|
159
|
-
Devise::Models.check_fields!(driver)
|
160
|
-
end
|
161
|
-
end
|
162
|
-
end
|
163
144
|
end
|
@@ -2,12 +2,13 @@ require 'test_helper'
|
|
2
2
|
require 'devise/parameter_sanitizer'
|
3
3
|
|
4
4
|
class BaseSanitizerTest < ActiveSupport::TestCase
|
5
|
-
def sanitizer
|
6
|
-
Devise::BaseSanitizer.new(User, :user,
|
5
|
+
def sanitizer(params)
|
6
|
+
Devise::BaseSanitizer.new(User, :user, params)
|
7
7
|
end
|
8
8
|
|
9
9
|
test 'returns chosen params' do
|
10
|
-
|
10
|
+
sanitizer = sanitizer(user: { "email" => "jose" })
|
11
|
+
assert_equal({ "email" => "jose" }, sanitizer.sanitize(:sign_in))
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
@@ -22,36 +23,49 @@ if defined?(ActionController::StrongParameters)
|
|
22
23
|
|
23
24
|
test 'filters some parameters on sign in by default' do
|
24
25
|
sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid", "remember_me" => "1" })
|
25
|
-
assert_equal({ "email" => "jose", "password" => "invalid", "remember_me" => "1" }, sanitizer.
|
26
|
+
assert_equal({ "email" => "jose", "password" => "invalid", "remember_me" => "1" }, sanitizer.sanitize(:sign_in))
|
26
27
|
end
|
27
28
|
|
28
29
|
test 'handles auth keys as a hash' do
|
29
30
|
swap Devise, :authentication_keys => {:email => true} do
|
30
31
|
sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid" })
|
31
|
-
assert_equal({ "email" => "jose", "password" => "invalid" }, sanitizer.
|
32
|
+
assert_equal({ "email" => "jose", "password" => "invalid" }, sanitizer.sanitize(:sign_in))
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
35
36
|
test 'filters some parameters on sign up by default' do
|
36
37
|
sanitizer = sanitizer(user: { "email" => "jose", "role" => "invalid" })
|
37
|
-
assert_equal({ "email" => "jose" }, sanitizer.
|
38
|
+
assert_equal({ "email" => "jose" }, sanitizer.sanitize(:sign_up))
|
38
39
|
end
|
39
40
|
|
40
41
|
test 'filters some parameters on account update by default' do
|
41
42
|
sanitizer = sanitizer(user: { "email" => "jose", "role" => "invalid" })
|
42
|
-
assert_equal({ "email" => "jose" }, sanitizer.
|
43
|
+
assert_equal({ "email" => "jose" }, sanitizer.sanitize(:account_update))
|
43
44
|
end
|
44
45
|
|
45
46
|
test 'allows custom hooks' do
|
46
47
|
sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid" })
|
47
48
|
sanitizer.for(:sign_in) { |user| user.permit(:email, :password) }
|
48
|
-
assert_equal({ "email" => "jose", "password" => "invalid" }, sanitizer.
|
49
|
+
assert_equal({ "email" => "jose", "password" => "invalid" }, sanitizer.sanitize(:sign_in))
|
50
|
+
end
|
51
|
+
|
52
|
+
test 'adding multiple permitted parameters' do
|
53
|
+
sanitizer = sanitizer(user: { "email" => "jose", "username" => "jose1", "role" => "valid" })
|
54
|
+
sanitizer.for(:sign_in).concat([:username, :role])
|
55
|
+
assert_equal({ "email" => "jose", "username" => "jose1", "role" => "valid" }, sanitizer.sanitize(:sign_in))
|
56
|
+
end
|
57
|
+
|
58
|
+
test 'removing multiple default parameters' do
|
59
|
+
sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid", "remember_me" => "1" })
|
60
|
+
sanitizer.for(:sign_in).delete(:email)
|
61
|
+
sanitizer.for(:sign_in).delete(:password)
|
62
|
+
assert_equal({ "remember_me" => "1" }, sanitizer.sanitize(:sign_in))
|
49
63
|
end
|
50
64
|
|
51
65
|
test 'raises on unknown hooks' do
|
52
66
|
sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid" })
|
53
67
|
assert_raise NotImplementedError do
|
54
|
-
sanitizer.
|
68
|
+
sanitizer.sanitize(:unknown)
|
55
69
|
end
|
56
70
|
end
|
57
71
|
end
|
@@ -4,6 +4,9 @@ require "omniauth-openid"
|
|
4
4
|
# Use this hook to configure devise mailer, warden hooks and so forth. The first
|
5
5
|
# four configuration values can also be set straight in your models.
|
6
6
|
Devise.setup do |config|
|
7
|
+
config.secret_key = "d9eb5171c59a4c817f68b0de27b8c1e340c2341b52cdbc60d3083d4e8958532" \
|
8
|
+
"18dcc5f589cafde048faec956b61f864b9b5513ff9ce29bf9e5d58b0f234f8e3b"
|
9
|
+
|
7
10
|
# ==> Mailer Configuration
|
8
11
|
# Configure the e-mail address which will be shown in Devise::Mailer,
|
9
12
|
# note that it will be overwritten if you use your own mailer class with default "from" parameter.
|
data/test/support/helpers.rb
CHANGED
@@ -67,25 +67,4 @@ class ActiveSupport::TestCase
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
70
|
-
|
71
|
-
def swap_module_method_existence(klass, method)
|
72
|
-
klass.module_eval %Q[
|
73
|
-
class << self
|
74
|
-
alias #{method}_referenced #{method}
|
75
|
-
undef #{method}
|
76
|
-
end
|
77
|
-
]
|
78
|
-
|
79
|
-
begin
|
80
|
-
yield if block_given?
|
81
|
-
ensure
|
82
|
-
|
83
|
-
klass.module_eval %Q[
|
84
|
-
class << self
|
85
|
-
alias #{method} #{method}_referenced
|
86
|
-
undef #{method}_referenced
|
87
|
-
end
|
88
|
-
]
|
89
|
-
end
|
90
|
-
end
|
91
70
|
end
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.1.0
|
4
5
|
prerelease:
|
5
|
-
version: 3.0.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- José Valim
|
@@ -10,58 +10,76 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-09-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
|
16
|
+
name: warden
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
20
|
- - ~>
|
19
21
|
- !ruby/object:Gem::Version
|
20
22
|
version: 1.2.3
|
21
|
-
none: false
|
22
|
-
name: warden
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
26
27
|
requirements:
|
27
28
|
- - ~>
|
28
29
|
- !ruby/object:Gem::Version
|
29
30
|
version: 1.2.3
|
30
|
-
none: false
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
|
-
|
32
|
+
name: orm_adapter
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
33
35
|
requirements:
|
34
36
|
- - ~>
|
35
37
|
- !ruby/object:Gem::Version
|
36
38
|
version: '0.1'
|
37
|
-
none: false
|
38
|
-
name: orm_adapter
|
39
39
|
type: :runtime
|
40
40
|
prerelease: false
|
41
|
-
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
42
43
|
requirements:
|
43
44
|
- - ~>
|
44
45
|
- !ruby/object:Gem::Version
|
45
46
|
version: '0.1'
|
46
|
-
none: false
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
-
|
48
|
+
name: bcrypt-ruby
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
49
51
|
requirements:
|
50
52
|
- - ~>
|
51
53
|
- !ruby/object:Gem::Version
|
52
54
|
version: '3.0'
|
53
|
-
none: false
|
54
|
-
name: bcrypt-ruby
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
58
59
|
requirements:
|
59
60
|
- - ~>
|
60
61
|
- !ruby/object:Gem::Version
|
61
62
|
version: '3.0'
|
62
|
-
none: false
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
+
name: thread_safe
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ~>
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0.1'
|
71
|
+
type: :runtime
|
72
|
+
prerelease: false
|
64
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0.1'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: railties
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
65
83
|
requirements:
|
66
84
|
- - ! '>='
|
67
85
|
- !ruby/object:Gem::Version
|
@@ -69,11 +87,10 @@ dependencies:
|
|
69
87
|
- - <
|
70
88
|
- !ruby/object:Gem::Version
|
71
89
|
version: '5'
|
72
|
-
none: false
|
73
|
-
name: railties
|
74
90
|
type: :runtime
|
75
91
|
prerelease: false
|
76
|
-
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
77
94
|
requirements:
|
78
95
|
- - ! '>='
|
79
96
|
- !ruby/object:Gem::Version
|
@@ -81,7 +98,6 @@ dependencies:
|
|
81
98
|
- - <
|
82
99
|
- !ruby/object:Gem::Version
|
83
100
|
version: '5'
|
84
|
-
none: false
|
85
101
|
description: Flexible authentication solution for Rails with Warden
|
86
102
|
email: contact@plataformatec.com.br
|
87
103
|
executables: []
|
@@ -91,7 +107,7 @@ files:
|
|
91
107
|
- .gitignore
|
92
108
|
- .travis.yml
|
93
109
|
- .yardopts
|
94
|
-
- CHANGELOG.
|
110
|
+
- CHANGELOG.md
|
95
111
|
- CONTRIBUTING.md
|
96
112
|
- Gemfile
|
97
113
|
- Gemfile.lock
|
@@ -107,7 +123,6 @@ files:
|
|
107
123
|
- app/controllers/devise_controller.rb
|
108
124
|
- app/helpers/devise_helper.rb
|
109
125
|
- app/mailers/devise/mailer.rb
|
110
|
-
- app/views/devise/_links.erb
|
111
126
|
- app/views/devise/confirmations/new.html.erb
|
112
127
|
- app/views/devise/mailer/confirmation_instructions.html.erb
|
113
128
|
- app/views/devise/mailer/reset_password_instructions.html.erb
|
@@ -132,6 +147,7 @@ files:
|
|
132
147
|
- lib/devise/delegator.rb
|
133
148
|
- lib/devise/failure_app.rb
|
134
149
|
- lib/devise/hooks/activatable.rb
|
150
|
+
- lib/devise/hooks/csrf_cleaner.rb
|
135
151
|
- lib/devise/hooks/forgetable.rb
|
136
152
|
- lib/devise/hooks/lockable.rb
|
137
153
|
- lib/devise/hooks/rememberable.rb
|
@@ -170,6 +186,7 @@ files:
|
|
170
186
|
- lib/devise/strategies/token_authenticatable.rb
|
171
187
|
- lib/devise/test_helpers.rb
|
172
188
|
- lib/devise/time_inflector.rb
|
189
|
+
- lib/devise/token_generator.rb
|
173
190
|
- lib/devise/version.rb
|
174
191
|
- lib/generators/active_record/devise_generator.rb
|
175
192
|
- lib/generators/active_record/templates/migration.rb
|
@@ -312,17 +329,17 @@ rdoc_options: []
|
|
312
329
|
require_paths:
|
313
330
|
- lib
|
314
331
|
required_ruby_version: !ruby/object:Gem::Requirement
|
332
|
+
none: false
|
315
333
|
requirements:
|
316
334
|
- - ! '>='
|
317
335
|
- !ruby/object:Gem::Version
|
318
336
|
version: '0'
|
319
|
-
none: false
|
320
337
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
338
|
+
none: false
|
321
339
|
requirements:
|
322
340
|
- - ! '>='
|
323
341
|
- !ruby/object:Gem::Version
|
324
342
|
version: '0'
|
325
|
-
none: false
|
326
343
|
requirements: []
|
327
344
|
rubyforge_project: devise
|
328
345
|
rubygems_version: 1.8.23
|
@@ -443,4 +460,3 @@ test_files:
|
|
443
460
|
- test/test_helper.rb
|
444
461
|
- test/test_helpers_test.rb
|
445
462
|
- test/test_models.rb
|
446
|
-
has_rdoc:
|
data/app/views/devise/_links.erb
DELETED