summaryrefslogtreecommitdiff
path: root/server/lib/schemas
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/schemas')
-rw-r--r--server/lib/schemas/Layout.js1
-rw-r--r--server/lib/schemas/Media.js13
-rw-r--r--server/lib/schemas/Project.js4
-rw-r--r--server/lib/schemas/User.js33
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;