has_editable_password 0.2.1 → 0.2.2
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 +8 -8
- data/lib/has_editable_password.rb +6 -1
- data/lib/version.rb +1 -1
- data/spec/has_editable_password_spec.rb +14 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDI0NmM3NWFjMTM5YzZiZjMyZTkxYzE5MmYxMWQyZDZkNTk0MzQ5OA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YmM2MjZiMjM5NTk1ODIxZDRlYjc2ZmM2NDc1ZmY5MzY3YjcxNjhiNg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NmEyNjhiMGI5YzU4OGM0OWQyN2ZmMzI1MmMwZDJhYWM4Y2JjYTU5ZDI3NmRk
|
10
|
+
ZWRlMzYxYWQ0N2M2YWU1ZWM5MDEzODAzZTQ0NjhlN2E2MDRhNWM3OTM4OTUx
|
11
|
+
Y2E4YWQ0ZmZmZTE1NmYzYzczMTg3MGNlMjFkYjE4MGNjYjVhZmM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YWQwYzNkYWU2NTE2NjY0N2ZkOTUxMzlmMTY1MDMyZTI3MTllNmIyNmQ5MGNj
|
14
|
+
NTdhZjBlYTNjZGFkY2Y4YmMxNDM2NzZjMWE5OWUzODk3NWJmYzM1ZjNlMWQ0
|
15
|
+
OWViNzliNTg3M2Y4OTMzYTNkNmI5NDE5YjVmM2RlZmUzZGY0MjM=
|
@@ -105,8 +105,13 @@ module HasEditablePassword
|
|
105
105
|
##
|
106
106
|
# Validation called on :update when the password_digest is touched.
|
107
107
|
# Sets an error on password unless the current_password or a valid recovery_token is set
|
108
|
+
# Also clears the password_recovery_token if it is verified, to preven token reuse.
|
108
109
|
def password_change
|
109
|
-
|
110
|
+
if allow_password_change?
|
111
|
+
self.password_recovery_token = ''
|
112
|
+
else
|
113
|
+
errors[:password] << 'Unauthorized to change the password'
|
114
|
+
end
|
110
115
|
end
|
111
116
|
|
112
117
|
def changing_password
|
data/lib/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
VERSION = '0.2.
|
1
|
+
VERSION = '0.2.2'
|
@@ -246,6 +246,13 @@ describe HasEditablePassword do
|
|
246
246
|
user.recovery_token = token
|
247
247
|
expect(user.valid?(:update)).to be_true
|
248
248
|
end
|
249
|
+
|
250
|
+
it 'clears the stored token after use' do
|
251
|
+
user.recovery_token = token
|
252
|
+
user.password = 'new_secret'
|
253
|
+
user.valid?(:update)
|
254
|
+
expect(user.password_recovery_token).to be_empty
|
255
|
+
end
|
249
256
|
end
|
250
257
|
|
251
258
|
context 'an invalid valid token is set' do
|
@@ -258,6 +265,13 @@ describe HasEditablePassword do
|
|
258
265
|
user.recovery_token = token
|
259
266
|
expect(user.valid?(:update)).to be_false
|
260
267
|
end
|
268
|
+
|
269
|
+
it 'does not clear the stored token' do
|
270
|
+
user.recovery_token = token
|
271
|
+
user.password = 'new_secret'
|
272
|
+
user.valid?(:update)
|
273
|
+
expect(user.password_recovery_token).to_not be_empty
|
274
|
+
end
|
261
275
|
end
|
262
276
|
|
263
277
|
context 'the current_password is valid' do
|