diff --git a/actions/docusign.js b/actions/docusign.js index 572e8f95a..625d0cb69 100644 --- a/actions/docusign.js +++ b/actions/docusign.js @@ -310,7 +310,7 @@ exports.generateDocusignViewURL = { blockedConnectionTypes: [], outputExample: {}, version: 'v2', - transaction: 'read', + transaction: 'write', cacheEnabled : false, databases: ["informixoltp", "common_oltp"], inputs: { diff --git a/initializers/dataAccess.js b/initializers/dataAccess.js index c49ad980c..33ce3bdfe 100644 --- a/initializers/dataAccess.js +++ b/initializers/dataAccess.js @@ -113,6 +113,11 @@ function parameterizeQuery(query, params, callback) { }); } +function isSafeToUseJavaBridge(sql) { + var lowerSQL = sql.toLowerCase(); + return lowerSQL.indexOf("insert") === -1 && lowerSQL.indexOf("update") === -1 && lowerSQL.indexOf("delete") === -1; +} + function executePreparedStatement(api, sql, parameters, connection, next, db) { async.waterfall([ function (cb) { @@ -120,7 +125,7 @@ function executePreparedStatement(api, sql, parameters, connection, next, db) { }, function (parametrizedQuery, cb) { sql = parametrizedQuery; - if (api.helper.readTransaction) { + if (isSafeToUseJavaBridge(sql) && api.helper.readTransaction) { api.log("Calling Java Bridge", "debug"); api.log(sql, "debug"); @@ -304,7 +309,9 @@ exports.dataAccess = function (api, next) { return; } - if (!api.helper.readTransaction) { + sql = queries[queryName].sql; + + if (!isSafeToUseJavaBridge(sql) || !api.helper.readTransaction) { connection = connectionMap[queries[queryName].db]; error = helper.checkObject(connection, "connection"); } @@ -314,7 +321,6 @@ exports.dataAccess = function (api, next) { return; } - sql = queries[queryName].sql; if (!sql) { api.log('Unregistered query ' + queryName + ' is asked for.', 'error'); next('The query for name ' + queryName + ' is not registered'); @@ -354,7 +360,7 @@ exports.dataAccess = function (api, next) { return; } - if (!api.helper.readTransaction) { + if (!isSafeToUseJavaBridge(sql) || !api.helper.readTransaction) { connection = connectionMap[dbName]; error = helper.checkObject(connection, "connection"); } @@ -368,4 +374,4 @@ exports.dataAccess = function (api, next) { } }; next(); -}; +}; \ No newline at end of file