sync_attr_with_auth0 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d91e1f95f9164f327378ca214c38e9dc7cfeeff
4
- data.tar.gz: 8dede277728347ddbfb18e191770f4b6cbbb1495
3
+ metadata.gz: 8523e6aed514159fa1647e3d21b93da28db42acd
4
+ data.tar.gz: 2365c7f979670b45a6922718549e5da98550a92d
5
5
  SHA512:
6
- metadata.gz: 5f10855707e6b307d3b14bb155ec8063ad66b7f11b5f75f5ae4c588bfebf57421301e91323ff10fe1e735183142fad9c82a7ce5373b48be0260fa27b21d6a3f2
7
- data.tar.gz: 0dac005de720f5a62fc56810b41e2a531dac0c28ad50e4c83364969ee1272ea7e8407e27027781ed9d46b9e984ec6f31f71d6fb925353a5dbf41611245417cf5
6
+ metadata.gz: 0542476a75202adf9f51aaabe90affbea46eb24022d8a18561eebffb3eb16e19b97f28f4180d3b6cf8ac32e1439d68e87474264276b9dd614cf54f3dcbe18dcc
7
+ data.tar.gz: a204c9d2fccbce726665fce6f860b37fc30d616bc39fc6ff6048650eb053aad2c7a102962d9e75b704bad462a48807476a1b92788d4abdc8c7f6bdba076bc5d4
@@ -2,6 +2,8 @@ module SyncAttrWithAuth0
2
2
  module Model
3
3
  extend ::ActiveSupport::Concern
4
4
 
5
+ require "uuidtools"
6
+
5
7
  module ClassMethods
6
8
 
7
9
  def sync_attr_with_auth0(options = {})
@@ -82,7 +84,7 @@ module SyncAttrWithAuth0
82
84
  # Figure out what needs to be sent to Auth0
83
85
  changes = {}
84
86
  matches.each do |m|
85
- changes[m] = self.send(m)
87
+ changes[m] = self.send(m) if self.respond_to?(m)
86
88
  end
87
89
 
88
90
  unless changes['email'].nil?
@@ -95,15 +97,18 @@ module SyncAttrWithAuth0
95
97
  changes.delete('password')
96
98
  end
97
99
 
100
+ password = auth0_user_password
101
+ email_verified = auth0_email_verified?
102
+
98
103
  response = SyncAttrWithAuth0::Auth0.make_request(
99
104
  access_token,
100
105
  'post',
101
106
  "/api/users",
102
107
  {
103
108
  'email' => self.send(email_att),
104
- 'password' => self.send(password_att),
109
+ 'password' => password,
105
110
  'connection' => connection_name,
106
- 'email_verified' => self.send(email_verified_att)
111
+ 'email_verified' => email_verified
107
112
  }.merge(changes))
108
113
 
109
114
  response = JSON.parse(response)
@@ -155,6 +160,12 @@ module SyncAttrWithAuth0
155
160
  'email' => email,
156
161
  'verify' => false # If the user were to fail to verify it would create a discrepency between auth0 and the local database
157
162
  })
163
+
164
+ response = JSON.parse(response)
165
+
166
+ # Update the record with the uid
167
+ self.send("#{uid_att}=", response['user_id'])
168
+ self.save
158
169
  end
159
170
 
160
171
  # Determine if the password was changed
@@ -187,5 +198,22 @@ module SyncAttrWithAuth0
187
198
  true # don't abort the callback chain
188
199
  end
189
200
 
201
+ def auth0_user_password
202
+ self.respond_to?(password_att) ? self.send(password_att) : auth0_default_password
203
+ end
204
+
205
+ def auth0_email_verified?
206
+ self.respond_to?(email_verified_att) ? self.send(email_verified_att) : false
207
+ end
208
+
209
+ def auth0_default_password
210
+ # Need a9 or something similar to guarantee one letter and one number in the password
211
+ "#{auth0_new_uuid[0..19]}a9"
212
+ end
213
+
214
+ def auth0_new_uuid
215
+ ::UUIDTools::UUID.random_create().to_s
216
+ end
217
+
190
218
  end
191
219
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sync_attr_with_auth0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick McGraw
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 4.0.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: uuidtools
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 2.1.5
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 2.1.5
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rails
71
85
  requirement: !ruby/object:Gem::Requirement