rails_jwt_auth 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -0
- data/app/mailers/rails_jwt_auth/mailer.rb +1 -1
- data/app/models/concerns/rails_jwt_auth/confirmable.rb +18 -2
- data/lib/rails_jwt_auth/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a4b26a2187fcea5e112d830e6fe4c359b6c254e
|
4
|
+
data.tar.gz: c03420a5b617a85fcf3abe79029d12e1fc28d05d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 147277f3faf5e26b7df0d2ba902de62c3ab5ddc2cb11f9f851c058202612d2686a31e2adc8d89d34d84123a757d744e0d012df18569d1cbbfb9c82a726577195
|
7
|
+
data.tar.gz: 0d694343c935a6968417523c43853eabe68d521e15c09b0387b604bc6bf30a388659ea23c9a9ddd483738d19fb8321f3a5679c4277b4176c3dc14fc6861aab65
|
data/README.md
CHANGED
@@ -107,6 +107,8 @@ and create a migration to add confirmation fields to User model:
|
|
107
107
|
```ruby
|
108
108
|
# example migration
|
109
109
|
change_table :users do |t|
|
110
|
+
t.string :email # if it doesn't exist yet
|
111
|
+
t.string :unconfirmed_email
|
110
112
|
t.string :confirmation_token
|
111
113
|
t.datetime :confirmation_sent_at
|
112
114
|
t.datetime :confimed_at
|
@@ -126,6 +128,8 @@ class User
|
|
126
128
|
end
|
127
129
|
```
|
128
130
|
|
131
|
+
This module needs that model has `email` field.
|
132
|
+
|
129
133
|
## Recoverable
|
130
134
|
|
131
135
|
Resets the user password and sends reset instructions
|
@@ -17,7 +17,7 @@ if defined?(ActionMailer)
|
|
17
17
|
end
|
18
18
|
|
19
19
|
subject = I18n.t('rails_jwt_auth.mailer.confirmation_instructions.subject')
|
20
|
-
mail(to: @user.email, subject: subject)
|
20
|
+
mail(to: @user.unconfirmed_email || @user.email, subject: subject)
|
21
21
|
end
|
22
22
|
|
23
23
|
def reset_password_instructions(user)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module RailsJwtAuth
|
2
2
|
module Confirmable
|
3
3
|
def send_confirmation_instructions
|
4
|
-
if confirmed?
|
4
|
+
if confirmed? && !unconfirmed_email_changed?
|
5
5
|
errors.add(:email, I18n.t('rails_jwt_auth.errors.already_confirmed'))
|
6
6
|
return false
|
7
7
|
end
|
@@ -18,6 +18,12 @@ module RailsJwtAuth
|
|
18
18
|
|
19
19
|
def confirm!
|
20
20
|
self.confirmed_at = Time.now.utc
|
21
|
+
|
22
|
+
if unconfirmed_email
|
23
|
+
self.email = unconfirmed_email
|
24
|
+
self.unconfirmed_email = nil
|
25
|
+
end
|
26
|
+
|
21
27
|
save
|
22
28
|
end
|
23
29
|
|
@@ -32,6 +38,8 @@ module RailsJwtAuth
|
|
32
38
|
|
33
39
|
def self.included(base)
|
34
40
|
if base.ancestors.include? Mongoid::Document
|
41
|
+
base.send(:field, :email, type: String)
|
42
|
+
base.send(:field, :unconfirmed_email, type: String)
|
35
43
|
base.send(:field, :confirmation_token, type: String)
|
36
44
|
base.send(:field, :confirmation_sent_at, type: Time)
|
37
45
|
base.send(:field, :confirmed_at, type: Time)
|
@@ -42,12 +50,20 @@ module RailsJwtAuth
|
|
42
50
|
base.send(:after_create) do
|
43
51
|
send_confirmation_instructions unless confirmed_at || confirmation_sent_at
|
44
52
|
end
|
53
|
+
|
54
|
+
base.send(:before_update) do
|
55
|
+
if email_changed? && email_was && !confirmed_at_changed?
|
56
|
+
self.unconfirmed_email = email
|
57
|
+
self.email = email_was
|
58
|
+
send_confirmation_instructions
|
59
|
+
end
|
60
|
+
end
|
45
61
|
end
|
46
62
|
|
47
63
|
private
|
48
64
|
|
49
65
|
def validate_confirmation
|
50
|
-
return
|
66
|
+
return true if !confirmed_at || email_changed?
|
51
67
|
|
52
68
|
if confirmed_at_was
|
53
69
|
errors.add(:email, I18n.t('rails_jwt_auth.errors.already_confirmed'))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_jwt_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- rjurado
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|