@@ -461,8 +461,10 @@ + (BFTask *)_deepSaveAsyncChildrenOfObject:(id)object withCurrentUser:(PFUser *)
461461 PFRESTCommand *command = nil ;
462462 @synchronized ([object lock ]) {
463463 [object _objectWillSave ];
464- [object _checkSaveParametersWithCurrentUser: currentUser];
465464 NSError *error;
465+ if (![object _checkSaveParametersWithCurrentUser: currentUser error: &error] && error) {
466+ return error;
467+ }
466468 command = [object _constructSaveCommandForChanges: [object unsavedChanges ]
467469 sessionToken: sessionToken
468470 objectEncoder: [PFPointerObjectEncoder objectEncoder ]
@@ -716,8 +718,8 @@ - (BOOL)isDataAvailableForKey:(NSString *)key {
716718// /--------------------------------------
717719
718720// Validations that are done on save. For now, there is nothing.
719- - (void )_checkSaveParametersWithCurrentUser : (PFUser *)currentUser {
720- return ;
721+ - (BOOL )_checkSaveParametersWithCurrentUser : (PFUser *)currentUser error : ( NSError **) error {
722+ return YES ;
721723}
722724
723725/* *
@@ -1091,18 +1093,21 @@ - (BFTask *)_enqueueSaveEventuallyWithChildren:(BOOL)saveChildren {
10911093 PFOperationSet *changes = [self unsavedChanges ];
10921094 changes.saveEventually = YES ;
10931095 [self startSave ];
1094- [self _checkSaveParametersWithCurrentUser: currentUser];
10951096 NSError *error;
1096- PFRESTCommand *command = [self _constructSaveCommandForChanges: changes
1097- sessionToken: sessionToken
1098- objectEncoder: [PFPointerOrLocalIdObjectEncoder objectEncoder ]
1099- error: &error];
1100- if (!command && error) {
1097+ if (![self _checkSaveParametersWithCurrentUser: currentUser error: &error] && error) {
11011098 saveTask = [BFTask taskWithError: error];
1102- } else {
1103- // Enqueue the eventually operation!
1104- saveTask = [[Parse _currentManager ].eventuallyQueue enqueueCommandInBackground: command withObject: self ];
1105- [self _enqueueSaveEventuallyOperationAsync: changes];
1099+ } else {
1100+ PFRESTCommand *command = [self _constructSaveCommandForChanges: changes
1101+ sessionToken: sessionToken
1102+ objectEncoder: [PFPointerOrLocalIdObjectEncoder objectEncoder ]
1103+ error: &error];
1104+ if (!command && error) {
1105+ saveTask = [BFTask taskWithError: error];
1106+ } else {
1107+ // Enqueue the eventually operation!
1108+ saveTask = [[Parse _currentManager ].eventuallyQueue enqueueCommandInBackground: command withObject: self ];
1109+ [self _enqueueSaveEventuallyOperationAsync: changes];
1110+ }
11061111 }
11071112 }
11081113 saveTask = [saveTask continueWithBlock: ^id (BFTask *task) {
@@ -1410,8 +1415,10 @@ - (BFTask *)saveAsync:(BFTask *)toAwait {
14101415 return childrenTask;
14111416 }
14121417 return [[childrenTask continueWithSuccessBlock: ^id (BFTask *task) {
1413- [self _checkSaveParametersWithCurrentUser: currentUser];
14141418 NSError *error;
1419+ if (![self _checkSaveParametersWithCurrentUser: currentUser error: &error] && error) {
1420+ return error;
1421+ }
14151422 PFRESTCommand *command = [self _constructSaveCommandForChanges: changes
14161423 sessionToken: sessionToken
14171424 objectEncoder: [PFPointerObjectEncoder objectEncoder ]
0 commit comments