@@ -211,24 +211,35 @@ function addParseCloud() {
211
211
afterDelete : { }
212
212
} ;
213
213
214
+ function validateClassNameForTriggers ( className ) {
215
+ const restrictedClassNames = [ '_Session' ] ;
216
+ if ( restrictedClassNames . indexOf ( className ) != - 1 ) {
217
+ throw `Triggers are not supported for ${ className } class.` ;
218
+ }
219
+ }
220
+
214
221
Parse . Cloud . define = function ( functionName , handler , validationHandler ) {
215
222
Parse . Cloud . Functions [ functionName ] = handler ;
216
223
Parse . Cloud . Validators [ functionName ] = validationHandler ;
217
224
} ;
218
225
Parse . Cloud . beforeSave = function ( parseClass , handler ) {
219
- var className = getClassName ( parseClass ) ;
226
+ let className = getClassName ( parseClass ) ;
227
+ validateClassNameForTriggers ( className ) ;
220
228
Parse . Cloud . Triggers . beforeSave [ className ] = handler ;
221
229
} ;
222
230
Parse . Cloud . beforeDelete = function ( parseClass , handler ) {
223
- var className = getClassName ( parseClass ) ;
231
+ let className = getClassName ( parseClass ) ;
232
+ validateClassNameForTriggers ( className ) ;
224
233
Parse . Cloud . Triggers . beforeDelete [ className ] = handler ;
225
234
} ;
226
235
Parse . Cloud . afterSave = function ( parseClass , handler ) {
227
- var className = getClassName ( parseClass ) ;
236
+ let className = getClassName ( parseClass ) ;
237
+ validateClassNameForTriggers ( className ) ;
228
238
Parse . Cloud . Triggers . afterSave [ className ] = handler ;
229
239
} ;
230
240
Parse . Cloud . afterDelete = function ( parseClass , handler ) {
231
- var className = getClassName ( parseClass ) ;
241
+ let className = getClassName ( parseClass ) ;
242
+ validateClassNameForTriggers ( className ) ;
232
243
Parse . Cloud . Triggers . afterDelete [ className ] = handler ;
233
244
} ;
234
245
Parse . Cloud . httpRequest = httpRequest ;
0 commit comments