From 7a14695da88f930094e637b43d49b729c58edc41 Mon Sep 17 00:00:00 2001 From: Nikita Lutsenko Date: Wed, 24 Feb 2016 01:23:24 -0800 Subject: [PATCH] Restrict triggers on _Session class. --- src/index.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/index.js b/src/index.js index 09873184..2b3fda11 100644 --- a/src/index.js +++ b/src/index.js @@ -211,24 +211,35 @@ function addParseCloud() { afterDelete: {} }; + function validateClassNameForTriggers(className) { + const restrictedClassNames = [ '_Session' ]; + if (restrictedClassNames.indexOf(className) != -1) { + throw `Triggers are not supported for ${className} class.`; + } + } + Parse.Cloud.define = function(functionName, handler, validationHandler) { Parse.Cloud.Functions[functionName] = handler; Parse.Cloud.Validators[functionName] = validationHandler; }; Parse.Cloud.beforeSave = function(parseClass, handler) { - var className = getClassName(parseClass); + let className = getClassName(parseClass); + validateClassNameForTriggers(className); Parse.Cloud.Triggers.beforeSave[className] = handler; }; Parse.Cloud.beforeDelete = function(parseClass, handler) { - var className = getClassName(parseClass); + let className = getClassName(parseClass); + validateClassNameForTriggers(className); Parse.Cloud.Triggers.beforeDelete[className] = handler; }; Parse.Cloud.afterSave = function(parseClass, handler) { - var className = getClassName(parseClass); + let className = getClassName(parseClass); + validateClassNameForTriggers(className); Parse.Cloud.Triggers.afterSave[className] = handler; }; Parse.Cloud.afterDelete = function(parseClass, handler) { - var className = getClassName(parseClass); + let className = getClassName(parseClass); + validateClassNameForTriggers(className); Parse.Cloud.Triggers.afterDelete[className] = handler; }; Parse.Cloud.httpRequest = httpRequest;