Skip to content

Commit

Permalink
Merge user metadata using lodash.merge (#207)
Browse files Browse the repository at this point in the history
Similar to [this example](https://auth0.com/docs/link-accounts/suggested-linking#merging-metadata), use lodash.merge to avoid loss of primary user's metadata when the secondary user has no metadata. Additionally with this change, array values are merged and primary (original) user's metadata takes precedence.

This fixes #206
  • Loading branch information
d60402 authored and Drew Fyock committed Jul 29, 2019
1 parent 4e2b175 commit b381ef4
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions src/rules/link-users-by-email-with-metadata.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

function (user, context, callback) {
const request = require('request');
const _ = require('lodash');

// Check if email is verified, we shouldn't automatically
// merge accounts if this is not the case.
Expand Down Expand Up @@ -50,11 +51,16 @@ function (user, context, callback) {
const originalUser = data[0];
const provider = user.identities[0].provider;
const providerUserId = user.identities[0].user_id;

user.app_metadata = user.app_metadata || {};
user.user_metadata = user.user_metadata || {};
auth0.users.updateAppMetadata(originalUser.user_id, user.app_metadata)
.then(auth0.users.updateUserMetadata(originalUser.user_id, user.user_metadata))
const mergeCustomizer = function(objectValue, sourceValue){
if (_.isArray(objectValue)){
return sourceValue.concat(objectValue);
}
};
const mergedUserMetadata = _.merge({}, user.user_metadata, originalUser.user_metadata, mergeCustomizer);
const mergedAppMetadata = _.merge({}, user.app_metadata, originalUser.app_metadata, mergeCustomizer);

auth0.users.updateAppMetadata(originalUser.user_id, mergedAppMetadata)
.then(auth0.users.updateUserMetadata(originalUser.user_id, mergedUserMetadata))
.then(function() {
request.post({
url: userApiUrl + '/' + originalUser.user_id + '/identities',
Expand Down

0 comments on commit b381ef4

Please sign in to comment.