Skip to content

Commit c67c27a

Browse files
authored
Merge pull request #130 from Human-Connection/124-change-validation-fields-message-countries
124 change validation fields message countries
2 parents e9fab3d + 6699473 commit c67c27a

4 files changed

Lines changed: 2636 additions & 3269 deletions

File tree

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node_modules

core/entryController.js

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ let formidable = require('formidable'),
55
fs = require('fs'),
66
crypto = require('crypto'),
77
resize = require('./resize'),
8-
mailer = require('./mailer');
8+
mailer = require('./mailer'),
9+
validator = require('validator');
910

1011
exports.getAll = function (req, res) {
1112
const ORDER_BY_DATE_ASC = 'asc',
@@ -191,7 +192,7 @@ exports.createEntry = function (req, res) {
191192
files = [],
192193
errorFields = [],
193194
out = {},
194-
requiredFields = ['email', 'firstname', 'anon', 'message'],
195+
requiredFields = ['email', 'firstname', 'anon', 'country'],
195196
allowedFields = ['email', 'firstname', 'lastname', 'anon', 'message', 'country', 'beta', 'newsletter', 'pax'];
196197

197198
form.uploadDir = __dirname + '/../uploads/';
@@ -221,6 +222,46 @@ exports.createEntry = function (req, res) {
221222

222223
fields[[field]] = value;
223224
}
225+
if (field === 'firstname') {
226+
fields[[field]] = validator.escape(validator.trim(value));
227+
if (!validator.isLength(value, {min: 1, max: 200})) {
228+
errorFields.push('firstname');
229+
out['firstname'] = 'This field needs to have between 1 and 200 characters';
230+
}
231+
}
232+
if (field === 'lastname') {
233+
fields[[field]] = validator.escape(validator.trim(value));
234+
if (!validator.isLength(value, {max: 200})) {
235+
errorFields.push('lastname');
236+
out['lastname'] = 'Limit of 200 characters for this field exceeded';
237+
}
238+
}
239+
if (field === 'email') {
240+
fields[[field]] = validator.escape(validator.trim(value));
241+
if (!validator.isEmail(value)) {
242+
errorFields.push('email');
243+
out['email'] = 'No valid email address';
244+
}
245+
if (!validator.isLength(value, {max: 200})) {
246+
errorFields.push('email');
247+
out['message'] = 'Limit of 200 characters for this field exceeded';
248+
}
249+
}
250+
if (field === 'country') {
251+
fields[[field]] = validator.escape(validator.trim(value));
252+
if (!validator.isISO31661Alpha2(value)) {
253+
errorFields.push('country');
254+
out['country'] = 'No valid country code';
255+
}
256+
}
257+
if (field === 'message') {
258+
fields[[field]] = validator.escape(validator.trim(value));
259+
if (!validator.isLength(value, {max: 500})) {
260+
errorFields.push('message');
261+
out['message'] = 'Limit of 500 characters for this field exceeded';
262+
}
263+
}
264+
224265
}).on('file', function (field, file) {
225266
files.push({
226267
size: file.size,

0 commit comments

Comments
 (0)