1
0
mirror of https://github.com/TryGhost/Ghost.git synced 2024-12-23 02:41:50 +03:00
Ghost/ghost/admin/validators/user.js
Victor Szeto 18dc5d650d Improve validation for user.website
closes 
- validate URL without protocol in server and client
- when saving url, add `http://` if the url doesn't have a protocol
2014-11-17 00:40:43 -05:00

65 lines
1.9 KiB
JavaScript

var UserValidator = Ember.Object.create({
check: function (model) {
var validator = this.validators[model.get('status')];
if (typeof validator !== 'function') {
return [];
}
return validator(model);
},
validators: {
invited: function (model) {
var validationErrors = [],
email = model.get('email'),
roles = model.get('roles');
if (!validator.isEmail(email)) {
validationErrors.push({message: 'Please supply a valid email address'});
}
if (roles.length < 1) {
validationErrors.push({message: 'Please select a role'});
}
return validationErrors;
},
active: function (model) {
var validationErrors = [],
name = model.get('name'),
bio = model.get('bio'),
email = model.get('email'),
location = model.get('location'),
website = model.get('website');
if (!validator.isLength(name, 0, 150)) {
validationErrors.push({message: 'Name is too long'});
}
if (!validator.isLength(bio, 0, 200)) {
validationErrors.push({message: 'Bio is too long'});
}
if (!validator.isEmail(email)) {
validationErrors.push({message: 'Please supply a valid email address'});
}
if (!validator.isLength(location, 0, 150)) {
validationErrors.push({message: 'Location is too long'});
}
if (!Ember.isEmpty(website) &&
(!validator.isURL(website, {require_protocol: false}) ||
!validator.isLength(website, 0, 2000))) {
validationErrors.push({message: 'Website is not a valid url'});
}
return validationErrors;
}
}
});
export default UserValidator;