From 21fb14d8f4dd4f4aa1e1f976da80d54ad61d444d Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Thu, 17 Mar 2016 12:05:31 -0400 Subject: [PATCH] Properly deletes authData.provider when set to null --- src/transform.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/transform.js b/src/transform.js index aae5cc2a..3c11fa9f 100644 --- a/src/transform.js +++ b/src/transform.js @@ -87,7 +87,7 @@ export function transformKeyValue(schema, className, restKey, restValue, options return transformWhere(schema, className, s); }); return {key: '$and', value: mongoSubqueries}; - default: + default: // Other auth data var authDataMatch = key.match(/^authData\.([a-zA-Z0-9_]+)\.id$/); if (authDataMatch) { @@ -224,7 +224,7 @@ function transformUpdate(schema, className, restUpdate) { if (className == '_User') { restUpdate = transformAuthData(restUpdate); } - + var mongoUpdate = {}; var acl = transformACL(restUpdate); if (acl._rperm || acl._wperm) { @@ -260,7 +260,14 @@ function transformUpdate(schema, className, restUpdate) { function transformAuthData(restObject) { if (restObject.authData) { Object.keys(restObject.authData).forEach((provider) => { - restObject[`_auth_data_${provider}`] = restObject.authData[provider]; + let providerData = restObject.authData[provider]; + if (providerData == null) { + restObject[`_auth_data_${provider}`] = { + __op: 'Delete' + } + } else { + restObject[`_auth_data_${provider}`] = providerData; + } }); delete restObject.authData; } @@ -823,4 +830,3 @@ module.exports = { transformWhere: transformWhere, untransformObject: untransformObject }; -