2017-11-01 19:46:15 +00:00
|
|
|
'use strict';
|
|
|
|
|
2017-10-29 21:04:13 +00:00
|
|
|
module.exports = {
|
|
|
|
removeSensitiveModelData: function(type, object){
|
|
|
|
var privateFields = {
|
|
|
|
'public_form': ['__v', 'analytics.visitors', 'analytics.views', 'analytics.conversionRate', 'analytics.fields', 'lastModified', 'created'],
|
|
|
|
'private_form': ['__v'],
|
|
|
|
'public_user': ['passwordHash', 'password', 'provider', 'salt', 'lastModified', 'created', 'resetPasswordToken', 'resetPasswordExpires', 'token', 'apiKey', '__v'],
|
|
|
|
'private_user': ['passwordHash', 'password', 'provider', 'salt', 'resetPasswordToken', 'resetPasswordExpires', 'token', '__v']
|
2017-11-01 19:46:15 +00:00
|
|
|
};
|
2017-10-29 21:04:13 +00:00
|
|
|
|
|
|
|
function removeKeysFromDict(dict, keys){
|
|
|
|
for(var i=0; i<keys.length; i++){
|
|
|
|
var curr_key = keys[i];
|
|
|
|
if( dict.hasOwnProperty(curr_key) ){
|
|
|
|
delete dict[curr_key];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
switch(type){
|
|
|
|
case 'private_form':
|
2017-11-01 19:46:15 +00:00
|
|
|
removeKeysFromDict(object, privateFields[type]);
|
2017-10-29 21:04:13 +00:00
|
|
|
if(object.admin){
|
2017-11-01 19:46:15 +00:00
|
|
|
removeKeysFromDict(object.admin, privateFields.private_user);
|
2017-10-29 21:04:13 +00:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'public_form':
|
2017-11-01 19:46:15 +00:00
|
|
|
removeKeysFromDict(object, privateFields[type]);
|
2017-10-29 21:04:13 +00:00
|
|
|
if(object.admin){
|
2017-11-01 19:46:15 +00:00
|
|
|
removeKeysFromDict(object.admin, privateFields.public_user);
|
2017-10-29 21:04:13 +00:00
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
if(privateFields.hasOwnProperty(type)){
|
|
|
|
removeKeysFromDict(object, privateFields[type]);
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return object;
|
|
|
|
}
|
2017-11-01 19:46:15 +00:00
|
|
|
};
|