diff options
Diffstat (limited to 'server/lib/schemas')
| -rw-r--r-- | server/lib/schemas/Layout.js | 1 | ||||
| -rw-r--r-- | server/lib/schemas/Media.js | 13 | ||||
| -rw-r--r-- | server/lib/schemas/Project.js | 4 | ||||
| -rw-r--r-- | server/lib/schemas/User.js | 33 |
4 files changed, 42 insertions, 9 deletions
diff --git a/server/lib/schemas/Layout.js b/server/lib/schemas/Layout.js index b096b85..e3f2616 100644 --- a/server/lib/schemas/Layout.js +++ b/server/lib/schemas/Layout.js @@ -25,6 +25,7 @@ var LayoutSchema = new mongoose.Schema({ }, rooms: [mongoose.Schema.Types.Mixed], startPosition: mongoose.Schema.Types.Mixed, + viewHeight: { type: Number }, user_id: { type: mongoose.Schema.ObjectId, index: true }, created_at: { type: Date }, updated_at: { type: Date }, diff --git a/server/lib/schemas/Media.js b/server/lib/schemas/Media.js index b415bae..1f26b8e 100644 --- a/server/lib/schemas/Media.js +++ b/server/lib/schemas/Media.js @@ -33,6 +33,19 @@ var MediaSchema = new mongoose.Schema({ type: String, default: "" }, + description: { + type: String, + default: "" + }, + autoplay: { type: Boolean, default: false }, + loop: { type: Boolean, default: false }, + mute: { type: Boolean, default: true }, + keyframe: { type: Number, default: 0.0 }, + + widthDimension: { type: Number }, + heightDimension: { type: Number }, + units: { type: String }, + user_id: { type: mongoose.Schema.ObjectId, index: true }, created_at: { type: Date }, }); diff --git a/server/lib/schemas/Project.js b/server/lib/schemas/Project.js index 75cefc5..0f54eaa 100644 --- a/server/lib/schemas/Project.js +++ b/server/lib/schemas/Project.js @@ -27,10 +27,6 @@ var ProjectSchema = new mongoose.Schema({ photo: { type: String, }, - about: { - type: String, - default: "" - }, rooms: [mongoose.Schema.Types.Mixed], walls: [mongoose.Schema.Types.Mixed], media: [mongoose.Schema.Types.Mixed], diff --git a/server/lib/schemas/User.js b/server/lib/schemas/User.js index 77e2e02..b64f8fc 100644 --- a/server/lib/schemas/User.js +++ b/server/lib/schemas/User.js @@ -41,10 +41,8 @@ var UserSchema = new mongoose.Schema({ }, "{PATH} is not an acceptable name"] }, email: { type: String, default: "" }, - emailVerified: { - type: Boolean, - default: false, - }, + emailVerified: { type: Boolean, default: false, }, + emailOptout: { type: Boolean, default: false, }, password: { type: String, validate: [function (val) { @@ -52,6 +50,11 @@ var UserSchema = new mongoose.Schema({ return true }, "{PATH} is not an acceptable password"] }, + passwordNonce: { + type: String, + default: "", + }, + location: { type: String, default: "" }, photo: { type: String, default: "" }, bio: { type: String, default: "" }, @@ -72,6 +75,26 @@ UserSchema.methods.validPassword = function (pw) { shasum.update(pw) return this.password === shasum.digest('hex'); } - +UserSchema.statics.findByUsername = function (username, cb) { + this.findOne({ username: new RegExp("^" + username + "$", "i") }, cb) +} +UserSchema.statics.findByEmail = function (email, cb) { + email = util.escapeRegExp(email) + this.findOne({ email: new RegExp("^" + email + "$", "i") }, cb) +} +UserSchema.statics.findByIP = function (ip, cb) { + ip = util.ip2num(ip) + this.findOne({ $or: [{ created_ip: ip }, { last_ip: ip }] }, cb) +} +UserSchema.statics.resetPasswordNonce = function(user, cb){ + crypto.pseudoRandomBytes(256, function (err, buf){ + var shasum = crypto.createHash('sha1') + shasum.update(buf) + user.passwordNonce = shasum.digest('hex') + user.save(function(err, doc){ + cb() + }) + }) +} module.exports = exports = mongoose.model('user', UserSchema); exports.schema = UserSchema; |
