Clean authData of null values on _User update
Adds a step to the RestWrite#execute chain: it cleans the response
authData object of null values.
For example, this:
{"authData": {"anonymous": null}, "updatedAt", ...}
will be transformed to this:
{"updatedAt", ...}
And this:
{"authData": {"anonymous": null, "twitter": ...}, "updatedAt", ...}
will be transformed to this:
{"authData": {"twitter": ...}, "updatedAt", ...}
Fixing this issue will fix anonymous user upgrades from the Android SDK.
This commit is contained in:
@@ -83,6 +83,8 @@ RestWrite.prototype.execute = function() {
|
||||
return this.handleFollowup();
|
||||
}).then(() => {
|
||||
return this.runAfterTrigger();
|
||||
}).then(() => {
|
||||
return this.cleanUserAuthData();
|
||||
}).then(() => {
|
||||
return this.response;
|
||||
});
|
||||
@@ -824,5 +826,21 @@ RestWrite.prototype.sanitizedData = function() {
|
||||
return Parse._decode(undefined, data);
|
||||
}
|
||||
|
||||
RestWrite.prototype.cleanUserAuthData = function() {
|
||||
if (this.response && this.response.response && this.className === '_User') {
|
||||
let user = this.response.response;
|
||||
if (user.authData) {
|
||||
Object.keys(user.authData).forEach((provider) => {
|
||||
if (user.authData[provider] === null) {
|
||||
delete user.authData[provider];
|
||||
}
|
||||
});
|
||||
if (Object.keys(user.authData).length == 0) {
|
||||
delete user.authData;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default RestWrite;
|
||||
module.exports = RestWrite;
|
||||
|
||||
Reference in New Issue
Block a user