removed stackTrace from 500 error page when running in production mode

This commit is contained in:
David Baldwynn 2017-10-04 21:42:55 -04:00
parent 5587c03065
commit 22b2ca7910
8 changed files with 38 additions and 22 deletions

View File

@ -165,14 +165,19 @@ exports.read = function(req, res) {
* Show the current form for rendering form live
*/
var readForRender = exports.readForRender = function(req, res) {
var newForm = req.form.toJSON();
var newForm = req.form;
if (!newForm.isLive && !req.user) {
return res.status(401).send({
message: 'Form is Not Public'
});
}
delete newForm.submissions;
//delete newForm.analytics;
delete newForm.admin;
delete newForm.lastModified;
delete newForm.__v;
delete newForm.created;
if(!newForm.startPage.showStart){
delete newForm.startPage;
@ -321,8 +326,8 @@ exports.formByIDFast = function(req, res, next, id) {
});
}
Form.findById(id)
.select('title', 'language', 'form_fields', 'startPage', 'endPage', 'hideFooter', 'isLive', 'design', 'admin', 'analytics.gaCode')
.populate()
.select('title language form_fields startPage endPage hideFooter isLive design admin analytics.gaCode')
.populate('admin')
.cache()
.lean()
.exec(function(err, form) {
@ -336,10 +341,11 @@ exports.formByIDFast = function(req, res, next, id) {
else {
//Remove sensitive information from User object
var _form = form;
if(_form.admin){
_form.admin.password = null;
_form.admin.salt = null;
_form.provider = null;
}
req.form = _form;
return next();
}

View File

@ -17,14 +17,14 @@ module.exports = function(app) {
app.route('/subdomain/:userSubdomain((?!api$)[A-Za-z0-9]+)/forms/:formId([a-zA-Z0-9]+)')
.post(forms.createSubmission);
app.route('/subdomain/:userSubdomain((?!api$)[A-Za-z0-9]+)/forms/:formId([a-zA-Z0-9]+)/render')
app.route('/subdomain/:userSubdomain((?!api$)[A-Za-z0-9]+)/forms/:formIdFast([a-zA-Z0-9]+)/render')
.get(forms.readForRender);
app.route('/forms/:formId([a-zA-Z0-9]+)/render')
.put(auth.isAuthenticatedOrApiKey, forms.hasAuthorization, forms.readForRender)
.get(auth.isAuthenticatedOrApiKey, forms.hasAuthorization, forms.readForRender);
} else {
app.route('/forms/:formId([a-zA-Z0-9]+)/render')
app.route('/forms/:formIdFast([a-zA-Z0-9]+)/render')
.get(forms.readForRender);
}
app.route('/forms')

View File

@ -184,8 +184,6 @@ module.exports = function(db) {
level: 9
}));
// Showing stack errors
app.set('showStackError', true);
// Set swig as the template engine
app.engine('server.view.html', consolidate[config.templateEngine]);
@ -296,10 +294,16 @@ module.exports = function(db) {
// Log it
client.captureError(err);
// Error page
res.status(500).render('500', {
error: err.stack
});
if(process.env.NODE_ENV === 'production'){
res.status(500).render('500', {
error: 'Internal Server Error'
});
} else {
// Error page
res.status(500).render('500', {
error: err.stack
});
}
});
// Assume 404 since no middleware responded

View File

@ -2674,7 +2674,7 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope',
//Export selected submissions of Form
$scope.exportSubmissions = function(type){
angular.element('#table-submission-data').tableExport({type: type, escape:false});
angular.element('#table-submission-data').tableExport({type: type, escape:false, ignoreColumn: [0]});
};
}]
@ -4460,7 +4460,9 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun
form.timeElapsed = _timeElapsed;
form.percentageComplete = $filter('formValidity')($scope.myform) / $scope.myform.visible_form_fields.length * 100;
delete form.visible_form_fields;
delete form.analytics;
delete form.design;
delete form.submissions;
for(var i=0; i < $scope.myform.form_fields.length; i++){
if($scope.myform.form_fields[i].fieldType === 'dropdown' && !$scope.myform.form_fields[i].deletePreserved){
$scope.myform.form_fields[i].fieldValue = $scope.myform.form_fields[i].fieldValue.option_value;
@ -4472,7 +4474,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun
.success(function (data, status) {
$scope.myform.submitted = true;
$scope.loading = false;
SendVisitorData.send($scope.myform, getActiveField(), _timeElapsed);
SendVisitorData.send(form, getActiveField(), _timeElapsed);
})
.error(function (error) {
$scope.loading = false;

File diff suppressed because one or more lines are too long

View File

@ -942,7 +942,9 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun
form.timeElapsed = _timeElapsed;
form.percentageComplete = $filter('formValidity')($scope.myform) / $scope.myform.visible_form_fields.length * 100;
delete form.visible_form_fields;
delete form.analytics;
delete form.design;
delete form.submissions;
for(var i=0; i < $scope.myform.form_fields.length; i++){
if($scope.myform.form_fields[i].fieldType === 'dropdown' && !$scope.myform.form_fields[i].deletePreserved){
$scope.myform.form_fields[i].fieldValue = $scope.myform.form_fields[i].fieldValue.option_value;
@ -954,7 +956,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun
.success(function (data, status) {
$scope.myform.submitted = true;
$scope.loading = false;
SendVisitorData.send($scope.myform, getActiveField(), _timeElapsed);
SendVisitorData.send(form, getActiveField(), _timeElapsed);
})
.error(function (error) {
$scope.loading = false;

File diff suppressed because one or more lines are too long

View File

@ -339,7 +339,9 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun
form.timeElapsed = _timeElapsed;
form.percentageComplete = $filter('formValidity')($scope.myform) / $scope.myform.visible_form_fields.length * 100;
delete form.visible_form_fields;
delete form.analytics;
delete form.design;
delete form.submissions;
for(var i=0; i < $scope.myform.form_fields.length; i++){
if($scope.myform.form_fields[i].fieldType === 'dropdown' && !$scope.myform.form_fields[i].deletePreserved){
$scope.myform.form_fields[i].fieldValue = $scope.myform.form_fields[i].fieldValue.option_value;
@ -351,7 +353,7 @@ angular.module('view-form').directive('submitFormDirective', ['$http', 'TimeCoun
.success(function (data, status) {
$scope.myform.submitted = true;
$scope.loading = false;
SendVisitorData.send($scope.myform, getActiveField(), _timeElapsed);
SendVisitorData.send(form, getActiveField(), _timeElapsed);
})
.error(function (error) {
$scope.loading = false;