UNPKG

sheercms

Version:

Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.

49 lines (41 loc) 1.29 kB
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;