sync_attr_with_auth0 0.0.17 → 0.0.18
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/lib/sync_attr_with_auth0/model.rb +70 -55
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1349703e7bb7429f17470b43f1bb8d9f8991f59f
|
4
|
+
data.tar.gz: 0a2de574896e0cd1505c1fcc9641fdedc906d2e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ac3a2fdf6a6530d79668202a629ad60cabdd44a290c4067b4a039f576c2a354eff6fb1c6b66b5420e52fee91d3c3cb97d83d525b63d7a0d06a59853f294d0d9
|
7
|
+
data.tar.gz: e620c9046049335bc937e3deb0a5f0d457a3a1331a2c9558c2a47d361231237ddf2c06cb0670065c37d54784e268a4f230b9aae6c3602ea288f0498b179cff25
|
@@ -13,8 +13,8 @@ module SyncAttrWithAuth0
|
|
13
13
|
merge_default_options(options)
|
14
14
|
|
15
15
|
after_validation :validate_email_with_auth0
|
16
|
-
after_create :
|
17
|
-
after_update :
|
16
|
+
after_create :auth0_create
|
17
|
+
after_update :auth0_update
|
18
18
|
end
|
19
19
|
|
20
20
|
private
|
@@ -70,7 +70,7 @@ module SyncAttrWithAuth0
|
|
70
70
|
return true
|
71
71
|
end
|
72
72
|
|
73
|
-
def
|
73
|
+
def auth0_create
|
74
74
|
# When creating a new user, create the user in auth0.
|
75
75
|
|
76
76
|
ok_to_sync = (self.respond_to?(:sync_with_auth0_on_create) and !self.sync_with_auth0_on_create.nil? ? self.sync_with_auth0_on_create : true)
|
@@ -83,31 +83,13 @@ module SyncAttrWithAuth0
|
|
83
83
|
end
|
84
84
|
|
85
85
|
if ok_to_sync
|
86
|
-
|
87
|
-
|
88
|
-
password = auth0_user_password
|
89
|
-
email_verified = auth0_email_verified?
|
90
|
-
args = {
|
91
|
-
'email' => self.send(auth0_sync_options[:email_att]),
|
92
|
-
'password' => password,
|
93
|
-
'connection' => auth0_sync_options[:connection_name],
|
94
|
-
'email_verified' => email_verified,
|
95
|
-
'user_metadata' => user_metadata
|
96
|
-
}
|
97
|
-
|
98
|
-
auth0 = SyncAttrWithAuth0::Auth0.create_auth0_client
|
99
|
-
|
100
|
-
response = auth0.create_user(self.send(auth0_sync_options[:name_att]), args)
|
101
|
-
|
102
|
-
# Update the record with the uid
|
103
|
-
self.send("#{auth0_sync_options[:uid_att]}=", response['user_id'])
|
104
|
-
self.save
|
86
|
+
create_user_in_auth0
|
105
87
|
end
|
106
88
|
|
107
89
|
true # don't abort the callback chain
|
108
90
|
end
|
109
91
|
|
110
|
-
def
|
92
|
+
def auth0_update
|
111
93
|
ok_to_sync = (self.respond_to?(:sync_with_auth0_on_update) and !self.sync_with_auth0_on_update.nil? ? self.sync_with_auth0_on_update : true)
|
112
94
|
|
113
95
|
if ok_to_sync
|
@@ -115,38 +97,12 @@ module SyncAttrWithAuth0
|
|
115
97
|
# Get the auth0 uid
|
116
98
|
uid = self.send(auth0_sync_options[:uid_att])
|
117
99
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
args = {
|
125
|
-
'app_metadata' => {
|
126
|
-
'name' => self.send(auth0_sync_options[:name_att]),
|
127
|
-
'nickname' => self.send(auth0_sync_options[:name_att]),
|
128
|
-
'given_name' => self.send(auth0_sync_options[:given_name_att]),
|
129
|
-
'family_name' => self.send(auth0_sync_options[:family_name_att])
|
130
|
-
}
|
131
|
-
}
|
132
|
-
|
133
|
-
if (
|
134
|
-
auth0_sync_options[:sync_atts].index(auth0_sync_options[:password_att]) and
|
135
|
-
# Because the password being passed to auth0 probably is not a real
|
136
|
-
# field (and if it is it needs to be the unencrypted value), we
|
137
|
-
# can't rely on checking if the password attribute changed (chances
|
138
|
-
# are, that method does not exist). So assume the password attribute
|
139
|
-
# is only set if it's being changed.
|
140
|
-
!self.send(auth0_sync_options[:password_att]).nil?
|
141
|
-
)
|
142
|
-
# The password should be sync'd and was changed
|
143
|
-
args['password'] = self.send(auth0_sync_options[:password_att])
|
144
|
-
args['verify_password'] = auth0_verify_password?
|
145
|
-
end
|
146
|
-
|
147
|
-
args['user_metadata'] = user_metadata
|
148
|
-
|
149
|
-
response = auth0.patch_user(uid, args)
|
100
|
+
if uid.nil?
|
101
|
+
# Create the user in auth0
|
102
|
+
create_user_in_auth0
|
103
|
+
else
|
104
|
+
# Update the user in auth0
|
105
|
+
update_user_in_auth0
|
150
106
|
end
|
151
107
|
|
152
108
|
end
|
@@ -154,6 +110,65 @@ module SyncAttrWithAuth0
|
|
154
110
|
true # don't abort the callback chain
|
155
111
|
end
|
156
112
|
|
113
|
+
def create_user_in_auth0
|
114
|
+
user_metadata = auth0_user_metadata
|
115
|
+
|
116
|
+
password = auth0_user_password
|
117
|
+
email_verified = auth0_email_verified?
|
118
|
+
args = {
|
119
|
+
'email' => self.send(auth0_sync_options[:email_att]),
|
120
|
+
'password' => password,
|
121
|
+
'connection' => auth0_sync_options[:connection_name],
|
122
|
+
'email_verified' => email_verified,
|
123
|
+
'user_metadata' => user_metadata
|
124
|
+
}
|
125
|
+
|
126
|
+
auth0 = SyncAttrWithAuth0::Auth0.create_auth0_client
|
127
|
+
|
128
|
+
response = auth0.create_user(self.send(auth0_sync_options[:name_att]), args)
|
129
|
+
|
130
|
+
# Update the record with the uid
|
131
|
+
self.send("#{auth0_sync_options[:uid_att]}=", response['user_id'])
|
132
|
+
self.save
|
133
|
+
end
|
134
|
+
|
135
|
+
def update_user_in_auth0
|
136
|
+
user_metadata = auth0_user_metadata
|
137
|
+
|
138
|
+
auth0 = SyncAttrWithAuth0::Auth0.create_auth0_client
|
139
|
+
|
140
|
+
args = {
|
141
|
+
'app_metadata' => {
|
142
|
+
'name' => self.send(auth0_sync_options[:name_att]),
|
143
|
+
'nickname' => self.send(auth0_sync_options[:name_att]),
|
144
|
+
'given_name' => self.send(auth0_sync_options[:given_name_att]),
|
145
|
+
'family_name' => self.send(auth0_sync_options[:family_name_att])
|
146
|
+
}
|
147
|
+
}
|
148
|
+
|
149
|
+
if (
|
150
|
+
auth0_sync_options[:sync_atts].index(auth0_sync_options[:password_att]) and
|
151
|
+
# Because the password being passed to auth0 probably is not a real
|
152
|
+
# field (and if it is it needs to be the unencrypted value), we
|
153
|
+
# can't rely on checking if the password attribute changed (chances
|
154
|
+
# are, that method does not exist). So assume the password attribute
|
155
|
+
# is only set if it's being changed.
|
156
|
+
!self.send(auth0_sync_options[:password_att]).nil?
|
157
|
+
)
|
158
|
+
# The password should be sync'd and was changed
|
159
|
+
args['password'] = self.send(auth0_sync_options[:password_att])
|
160
|
+
args['verify_password'] = auth0_verify_password?
|
161
|
+
end
|
162
|
+
|
163
|
+
args['user_metadata'] = user_metadata
|
164
|
+
|
165
|
+
response = auth0.patch_user(uid, args)
|
166
|
+
|
167
|
+
if response.code == 404
|
168
|
+
create_user_in_auth0
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
157
172
|
def auth0_user_password
|
158
173
|
self.respond_to?(auth0_sync_options[:password_att]) ? self.send(auth0_sync_options[:password_att]) : auth0_default_password
|
159
174
|
end
|