From 25707a19215485b2a7c5e9043fb8c13dfa06283e Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Fri, 10 Mar 2023 16:00:50 +0530 Subject: [PATCH 01/43] issue: Unable to create new role when beforeSave hook is present for '_Role'. --- spec/ParseRole.spec.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/spec/ParseRole.spec.js b/spec/ParseRole.spec.js index 47fed865fb..4676d2fd82 100644 --- a/spec/ParseRole.spec.js +++ b/spec/ParseRole.spec.js @@ -601,4 +601,12 @@ describe('Parse Role testing', () => { }); }); }); + + it('should save role when beforeSave hook for _Role is present.', async done => { + Parse.Cloud.beforeSave('_Role', () => {}); + const role = new Parse.Role('roleName', new Parse.ACL()); + await role.save({}, { useMasterKey: true }); + expect(role.id).toBeDefined(); + done(); + }); }); From 7afb2d3b04f822aa552752d2905b4ec88a5dc504 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sat, 11 Mar 2023 13:38:04 +0530 Subject: [PATCH 02/43] fix: Unable to create new role if `beforeSave` hook exists --- src/RestWrite.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/RestWrite.js b/src/RestWrite.js index 3d7252a90b..55c33b57d7 100644 --- a/src/RestWrite.js +++ b/src/RestWrite.js @@ -220,9 +220,13 @@ RestWrite.prototype.runBeforeSaveTrigger = function () { const { originalObject, updatedObject } = this.buildParseObjects(); + const identifier = updatedObject._getStateIdentifier(); const stateController = Parse.CoreManager.getObjectStateController(); - const [pending] = stateController.getPendingOps(updatedObject._getStateIdentifier()); - this.pendingOps = { ...pending }; + const [pending] = stateController.getPendingOps(identifier); + this.pendingOps = { + operations: { ...pending }, + identifier, + }; return Promise.resolve() .then(() => { From 9692e05bd66166664c11a7b04c9063fff28a86ca Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sat, 11 Mar 2023 13:55:15 +0530 Subject: [PATCH 03/43] revert change --- src/RestWrite.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/RestWrite.js b/src/RestWrite.js index 55c33b57d7..3d7252a90b 100644 --- a/src/RestWrite.js +++ b/src/RestWrite.js @@ -220,13 +220,9 @@ RestWrite.prototype.runBeforeSaveTrigger = function () { const { originalObject, updatedObject } = this.buildParseObjects(); - const identifier = updatedObject._getStateIdentifier(); const stateController = Parse.CoreManager.getObjectStateController(); - const [pending] = stateController.getPendingOps(identifier); - this.pendingOps = { - operations: { ...pending }, - identifier, - }; + const [pending] = stateController.getPendingOps(updatedObject._getStateIdentifier()); + this.pendingOps = { ...pending }; return Promise.resolve() .then(() => { From ea35a778f49ce7e825e1192d95d0f4ec444dff59 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sat, 11 Mar 2023 15:35:18 +0530 Subject: [PATCH 04/43] fix: Unable to create new role if `beforeSave` hook exists --- src/RestWrite.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/RestWrite.js b/src/RestWrite.js index 3d7252a90b..01b6e799fd 100644 --- a/src/RestWrite.js +++ b/src/RestWrite.js @@ -87,7 +87,10 @@ function RestWrite(config, auth, className, query, data, originalData, clientSDK // Shared SchemaController to be reused to reduce the number of loadSchema() calls per request // Once set the schemaData should be immutable this.validSchemaController = null; - this.pendingOps = {}; + this.pendingOps = { + operations: null, + identifier: null, + }; } // A convenient method to perform all the steps of processing the @@ -219,10 +222,13 @@ RestWrite.prototype.runBeforeSaveTrigger = function () { } const { originalObject, updatedObject } = this.buildParseObjects(); - + const identifier = updatedObject._getStateIdentifier(); const stateController = Parse.CoreManager.getObjectStateController(); - const [pending] = stateController.getPendingOps(updatedObject._getStateIdentifier()); - this.pendingOps = { ...pending }; + const [pending] = stateController.getPendingOps(identifier); + this.pendingOps = { + operations: { ...pending }, + identifier, + }; return Promise.resolve() .then(() => { @@ -1569,7 +1575,7 @@ RestWrite.prototype.runAfterSaveTrigger = function () { .then(result => { const jsonReturned = result && !result._toFullJSON; if (jsonReturned) { - this.pendingOps = {}; + this.pendingOps.operations = {}; this.response.response = result; } else { this.response.response = this._updateResponseWithData( @@ -1673,10 +1679,9 @@ RestWrite.prototype.cleanUserAuthData = function () { }; RestWrite.prototype._updateResponseWithData = function (response, data) { - const { updatedObject } = this.buildParseObjects(); const stateController = Parse.CoreManager.getObjectStateController(); - const [pending] = stateController.getPendingOps(updatedObject._getStateIdentifier()); - for (const key in this.pendingOps) { + const [pending] = stateController.getPendingOps(this.pendingOps.identifier); + for (const key in this.pendingOps.operations) { if (!pending[key]) { data[key] = this.originalData ? this.originalData[key] : { __op: 'Delete' }; this.storage.fieldsChangedByTrigger.push(key); From 412852b6a66560bb2e01a5597a4efe9023e96941 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sat, 11 Mar 2023 15:49:01 +0530 Subject: [PATCH 05/43] empty From bb5fe275769290bf050a532e5269f5923359dbee Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sat, 11 Mar 2023 16:05:05 +0530 Subject: [PATCH 06/43] empty From be62d6a42d17eb1503236b23dae96a9743747f29 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sat, 11 Mar 2023 16:57:20 +0530 Subject: [PATCH 07/43] empty From f88d1ed6be0e7b07c46e93874627d35c2cc69365 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sat, 11 Mar 2023 17:47:04 +0530 Subject: [PATCH 08/43] empty From f02adee31519f98eeab8280428e4420b815bfc8d Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 13:07:06 +0530 Subject: [PATCH 09/43] empty From 09f005924797a6c87d54ba70be019c5a1228b246 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 13:17:04 +0530 Subject: [PATCH 10/43] empty From b5c48e579a386fef6189dcf760005fcdcc329c7c Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 15:31:07 +0530 Subject: [PATCH 11/43] empty From 567a135dba5930c38a7d4fd4978e295af2521bb4 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 15:40:40 +0530 Subject: [PATCH 12/43] empty From f0848ce7e34a2479007304de5767484cbe450d27 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 15:51:30 +0530 Subject: [PATCH 13/43] empty From 959d93d8c4aacb8ddf95265546f4d9adb6364079 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 16:14:08 +0530 Subject: [PATCH 14/43] empty From 65d85bfe65b8f92b6819df54af88855e1d42e5c1 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 16:31:04 +0530 Subject: [PATCH 15/43] empty From 71700187c1110e6b1f463d6132a8512be7de3478 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 16:46:57 +0530 Subject: [PATCH 16/43] empty From 24bf11264964e2aaee2f1eb8c970f753b92ddac3 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 17:08:29 +0530 Subject: [PATCH 17/43] empty From afb4dfe7db73c80f980dd5e3405b9bdae988b21e Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 17:25:06 +0530 Subject: [PATCH 18/43] empty From 3b0c84c6ddb3334f8e0c944b954459a72dcfbe16 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Sun, 12 Mar 2023 18:55:57 +0530 Subject: [PATCH 19/43] empty From 169364c07b87b95a5bc8f33622095dd84cb7c462 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Mon, 13 Mar 2023 07:27:55 +0530 Subject: [PATCH 20/43] empty From d6d6cf81d650d58b5fff451b51eef31d8c72868c Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Mon, 13 Mar 2023 07:37:08 +0530 Subject: [PATCH 21/43] empty From f02b5ec9c3e0a47c9bd04dde050caff1e96de5d2 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Mon, 13 Mar 2023 16:17:33 +0530 Subject: [PATCH 22/43] empty From 9eaaecf0ad5f7cb2d82c22768a46e4285faac77a Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Mon, 13 Mar 2023 16:38:55 +0530 Subject: [PATCH 23/43] empty From fb5bd6a478bf05328f0fc01e5b3786a04c8aee2e Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Mon, 13 Mar 2023 22:15:27 +0530 Subject: [PATCH 24/43] empty From 074edc9361a10967a23a0df4ec0841ed2c37f0d4 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Mon, 13 Mar 2023 22:25:49 +0530 Subject: [PATCH 25/43] empty From 1841eec3d257d343653367d97801653159d436fe Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Mon, 13 Mar 2023 22:36:32 +0530 Subject: [PATCH 26/43] empty From 54a562004e73679c1c571f0d85674c3f69670f17 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Mon, 13 Mar 2023 22:51:00 +0530 Subject: [PATCH 27/43] empty From a8763e1643a56d0b454d21ea54cde8b3871b6690 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 00:49:59 +0530 Subject: [PATCH 28/43] empty From 935fbe4b90ff3213578aa34cf34c94b44c893660 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 09:09:49 +0530 Subject: [PATCH 29/43] empty From 61a5a14623e01be62bab41a2f451470518816fbb Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 09:23:25 +0530 Subject: [PATCH 30/43] empty From 48ac6a51bebf40beb5a1cc6960b584a030626cf8 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 09:37:15 +0530 Subject: [PATCH 31/43] empty From 312d9606df8310b504006d4d27978312a8b91bfe Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 09:37:23 +0530 Subject: [PATCH 32/43] empty From 28c15edd14e66c3874c2324f5cf9b3b52e184e0b Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 10:01:22 +0530 Subject: [PATCH 33/43] empty From aa954844ba19290f7501bdfe3558ed2a8a35f2a6 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 10:17:20 +0530 Subject: [PATCH 34/43] empty From 1cb684250e99c4567fe0527ff9633c27fe337405 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 10:57:47 +0530 Subject: [PATCH 35/43] empty From 954b037ea77d044d66db2dc4953f35697b9c71a3 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 14:18:46 +0530 Subject: [PATCH 36/43] empty From 3fd3754a54d3a7261ef939aa6ceb6680e9119ba2 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 14:35:56 +0530 Subject: [PATCH 37/43] empty From de0a87785af048655f4711753dbe63120bad05d1 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 23:27:28 +0530 Subject: [PATCH 38/43] empty From e80ddfece1f832585fbd1f335d208510f61b6ff9 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Tue, 14 Mar 2023 23:42:18 +0530 Subject: [PATCH 39/43] empty From e67415705a80c617e51102d8d25d24504f6db7f6 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Wed, 15 Mar 2023 00:15:11 +0530 Subject: [PATCH 40/43] empty From 3e88e5fa0939650553c80f819ca93f561825c784 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Wed, 15 Mar 2023 00:26:41 +0530 Subject: [PATCH 41/43] empty From efcd879fcfbbc20f192728cd9157bdcc66b27e91 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Wed, 15 Mar 2023 00:38:57 +0530 Subject: [PATCH 42/43] empty From a15e63f1ad024863fa5c0295c3bd94551da279c4 Mon Sep 17 00:00:00 2001 From: Yogendra Singh Date: Wed, 15 Mar 2023 00:55:15 +0530 Subject: [PATCH 43/43] empty