sheercms
Version:
Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.
49 lines (41 loc) • 1.29 kB
JavaScript
var mongoose = require('mongoose');
var userSchema = mongoose.Schema({
username: {type: String, required: 'Username is required.', index: true},
password: {type: String, required: 'Password is required.'},
firstName: String,
lastName: String,
email: String,
active: {type: Boolean, required:true},
roles: [String],
protected: Boolean
});
var roleSchema = mongoose.Schema({
name: {type: String, required: 'Role name is required.'},
desc: String,
group: String,
created: Date,
modified: Date,
protected: Boolean
});
//remove the password field when converting to JSON
userSchema.methods.toJSON = function() {
var obj = this.toObject();
delete obj.password;
return obj;
}
var models = {
User: mongoose.model('users', userSchema),
Role: mongoose.model('roles', roleSchema)
};
//Unique Username Validation
models.User.schema.path('username').validate(function (value, respond) {
if (this.isNew == true) {
models.User.findOne({ username: value }, function (err, user) {
if (user) respond(false);
else respond(true);
});
}
else
respond(true);
}, 'This username already exists.');
module.exports = models;