sync_attr_with_auth0 0.2.0 → 0.2.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1e695e69af87911aabd00b8ce843ff282d0f0d37
4
- data.tar.gz: 7a5e2e80105e3f3317e745c6ea35e5003242790e
2
+ SHA256:
3
+ metadata.gz: 3b29ebf79d97e921bb5e8cb4f8faed85f37d626e6637a3ade34a4e551d7e005a
4
+ data.tar.gz: b1f528e810d6c6eb2eee5f2381f1ba1d337f1c83ced7c4ed63d795eb7fa8e804
5
5
  SHA512:
6
- metadata.gz: 91d27a3269ffcfc3caf0b6897db9623646ac659484ef8e722f10af27f976b12fef5e041511579283bca3f313431fa19bb74b125b75b421a3274ac5653106b0c6
7
- data.tar.gz: 1cb8629ac16d9c752836d9c2c9a9ecef56b2574b35a9c1e7ace3dfe00e83dc607d8a9067f83eaf21863f5a67ec685ac8fe0aa6487a484392b62f944704351186
6
+ metadata.gz: 86e479e00c7f1e86cb2b02b8e1a3fc7b922e04d05cf750b1e233f39462cf2ae98e2d8810e6d706fc872bbd9a6704eb23ae3963b3eb4f42c581bb2d06f03d7c75
7
+ data.tar.gz: 1152e5d70a71e5e5cd4b208a6bafa39e788e6c4f03661aacd41d5497648008dcee15114bdf01f362f63a9be4472d73109be0f083f5bd40dd95bcd7ac0b354f5c
@@ -13,6 +13,7 @@ module SyncAttrWithAuth0
13
13
 
14
14
  module ClassMethods
15
15
 
16
+ # TODO: We should accept two arrays of fields: user_metadata (for user-managed settings) and app_metadata (for app-managed settings)
16
17
  def sync_attr_with_auth0(*fields)
17
18
  options = fields.extract_options!
18
19
 
@@ -159,12 +160,8 @@ module SyncAttrWithAuth0
159
160
 
160
161
 
161
162
  def auth0_app_metadata
162
- return {
163
- 'name' => auth0_user_name,
164
- 'nickname' => auth0_user_name,
165
- 'given_name' => auth0_user_given_name,
166
- 'family_name' => auth0_user_family_name
167
- }
163
+ # TODO: Source this from a separate attribute list.
164
+ return {}
168
165
  end # auth0_app_metadata
169
166
 
170
167
 
@@ -94,7 +94,7 @@ module SyncAttrWithAuth0
94
94
  def create_in_auth0
95
95
  params = auth0_create_params
96
96
 
97
- response = SyncAttrWithAuth0::Auth0.create_user(auth0_user_name, params, config: auth0_sync_configuration)
97
+ response = SyncAttrWithAuth0::Auth0.create_user(params, config: auth0_sync_configuration)
98
98
 
99
99
  # Update the record with the uid and picture after_commit
100
100
  @auth0_uid = response['user_id']
@@ -105,10 +105,8 @@ module SyncAttrWithAuth0
105
105
  def update_in_auth0(user_uid)
106
106
  return unless user_uid
107
107
 
108
- params = auth0_update_params
109
-
110
108
  begin
111
- response = SyncAttrWithAuth0::Auth0.patch_user(user_uid, params, config: auth0_sync_configuration)
109
+ response = SyncAttrWithAuth0::Auth0.patch_user(user_uid, auth0_update_params(user_uid), config: auth0_sync_configuration)
112
110
 
113
111
  # Update the record with the uid after_commit (in case it doesn't match what's on file).
114
112
  @auth0_uid = user_uid
@@ -125,7 +123,7 @@ module SyncAttrWithAuth0
125
123
  else
126
124
  # The uid was incorrect, so re-attempt with the new uid
127
125
  # and update the one on file.
128
- response = SyncAttrWithAuth0::Auth0.patch_user(found_user['user_id'], params, config: auth0_sync_configuration)
126
+ response = SyncAttrWithAuth0::Auth0.patch_user(found_user['user_id'], auth0_update_params(found_user['user_id']), config: auth0_sync_configuration)
129
127
 
130
128
  # Update the record with the uid after_commit
131
129
  @auth0_uid = found_user['user_id']
@@ -159,6 +157,10 @@ module SyncAttrWithAuth0
159
157
  'password' => password,
160
158
  'connection' => auth0_sync_configuration.connection_name,
161
159
  'email_verified' => email_verified,
160
+ 'name' => auth0_user_name,
161
+ 'nickname' => auth0_user_name,
162
+ 'given_name' => auth0_user_given_name,
163
+ 'family_name' => auth0_user_family_name,
162
164
  'user_metadata' => user_metadata,
163
165
  'app_metadata' => app_metadata
164
166
  }
@@ -167,15 +169,24 @@ module SyncAttrWithAuth0
167
169
  end # auth0_create_params
168
170
 
169
171
 
170
- def auth0_update_params
172
+ def auth0_update_params(user_uid)
171
173
  user_metadata = auth0_user_metadata
172
174
  app_metadata = auth0_app_metadata
175
+ is_auth0_connection_strategy = user_uid.start_with?("auth0|")
173
176
 
174
177
  params = {
175
178
  'app_metadata' => app_metadata,
176
179
  'user_metadata' => user_metadata
177
180
  }
178
181
 
182
+ if is_auth0_connection_strategy
183
+ # We can update the name attributes on Auth0 connection strategy only.
184
+ params['name'] = auth0_user_name
185
+ params['nickname'] = auth0_user_name
186
+ params['given_name'] = auth0_user_given_name
187
+ params['family_name'] = auth0_user_family_name
188
+ end
189
+
179
190
  if auth0_user_saved_change_to_password?
180
191
  # The password needs to be updated.
181
192
  params['password'] = auth0_user_password
@@ -14,10 +14,10 @@ module SyncAttrWithAuth0
14
14
  }
15
15
  },
16
16
  'iat' => Time.now.to_i,
17
- 'jti' => UUIDTools::UUID.timestamp_create.to_s
17
+ 'jti' => UUIDTools::UUID.random_create.to_s
18
18
  }
19
19
 
20
- jwt = JWT.encode(payload, JWT.base64url_decode(global_client_secret))
20
+ jwt = JWT.encode(payload, JWT::Base64.url_decode(global_client_secret), 'HS256', { typ: 'JWT' })
21
21
 
22
22
  return jwt
23
23
  end # ::create_auth0_jwt
@@ -86,10 +86,9 @@ module SyncAttrWithAuth0
86
86
  end # ::find_users_by_email
87
87
 
88
88
 
89
- def self.create_user(name, params, config: SyncAttrWithAuth0.configuration)
89
+ def self.create_user(params, config: SyncAttrWithAuth0.configuration)
90
90
  auth0 = SyncAttrWithAuth0::Auth0.create_auth0_client(config: config)
91
-
92
- return auth0.create_user(name, params)
91
+ return auth0.create_user(params.delete('connection'), params)
93
92
  end # ::create_user
94
93
 
95
94
 
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sync_attr_with_auth0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick McGraw
8
8
  - Mike Oliver
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
  date: 2016-07-26 00:00:00.000000000 Z
@@ -87,28 +87,28 @@ dependencies:
87
87
  requirements:
88
88
  - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: '0'
90
+ version: 5.0.0
91
91
  type: :runtime
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: '0'
97
+ version: 5.0.0
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: jwt
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - "~>"
102
+ - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: 1.5.0
104
+ version: 2.2.0
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - "~>"
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: 1.5.0
111
+ version: 2.2.0
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: rails
114
114
  requirement: !ruby/object:Gem::Requirement
@@ -154,7 +154,7 @@ homepage: http://rubygems.org/gems/sync_attr_with_auth0
154
154
  licenses:
155
155
  - MIT
156
156
  metadata: {}
157
- post_install_message:
157
+ post_install_message:
158
158
  rdoc_options: []
159
159
  require_paths:
160
160
  - lib
@@ -169,9 +169,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  - !ruby/object:Gem::Version
170
170
  version: '0'
171
171
  requirements: []
172
- rubyforge_project:
173
- rubygems_version: 2.6.13
174
- signing_key:
172
+ rubygems_version: 3.0.6
173
+ signing_key:
175
174
  specification_version: 4
176
175
  summary: Synchronize attributes on a local ActiveRecord user model with the user metadata
177
176
  store on Auth0