// initialize dependencies require('./deck'); require('./user'); var app = require(global.approot + '/common/app'), solr = require(global.approot + '/common/solr'), SolrSync = require(global.approot + '/models/plugins/solr-sync'), SocialJob = require(global.approot + '/models/social-job'); var db = require(global.approot + '/common/database'), pictureSchema = new db.Schema(), locationSchema = new db.Schema(), editionSchema = new db.Schema({ author:{ type:db.Schema.ObjectId, ref:'User' }, revision:{ type:db.Schema.ObjectId, ref:'Revision' }, createdAt:{ type:Date, 'default':Date.now } }); pictureSchema.plugin(require('./plugins/picture')); pictureSchema.add({ isCover:Boolean, sourceURL:String,
* the users logins */ var UserLoginLogSchema = new db.Schema({ ip: String, createdAt: { type: Date, default: Date.now } }); /** * UserMessagesSchema * * a message is for inner communication * between users */ var UserMessagesSchema = new db.Schema({ content: String, read: {type: Boolean, default: false}, author: { type: db.Schema.Types.ObjectId, ref: 'User' }, createdAt: { type: Date, default: Date.now } }); /** * a message can have followups */ UserMessagesSchema.add({ followUps: [UserMessagesSchema] }); /** * computes the user's full name * to display * in worst case, this is the user's email * address
var mongoose = require(__("lib/database.js")); var ObjectId = mongoose.Schema.ObjectId; var hasher = require("hash-password-default"); var UserSchema = new mongoose.Schema({ id:Number, firstname:{ type:String }, lastname:{ type:String }, email:{ type:String, unique:true}, hash:{ type:String }, bio:{ type:String } }); UserSchema.virtual("password").get(function(){ return this.hash; }); UserSchema.virtual("password").set(function(password){ this.hash = hasher.hashPassword(password); }); module.exports = mongoose.model('User', UserSchema);