summaryrefslogtreecommitdiff
path: root/server/lib/schemas/Collaborator.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-08-29 22:34:54 -0400
committerJules Laplace <jules@okfoc.us>2014-08-29 22:34:54 -0400
commit01755335859b19756f6d64a2f8a10ae98abceb5f (patch)
treed5ba0258769f85fff5512498b04c3c037daecf79 /server/lib/schemas/Collaborator.js
parent2235c34e498499b8141e835998b962067583a0ce (diff)
parent851ddfd46abb7f944c1a6b7f198b5fd8cabd4c13 (diff)
merge
Diffstat (limited to 'server/lib/schemas/Collaborator.js')
-rw-r--r--server/lib/schemas/Collaborator.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/server/lib/schemas/Collaborator.js b/server/lib/schemas/Collaborator.js
new file mode 100644
index 0000000..6b3d452
--- /dev/null
+++ b/server/lib/schemas/Collaborator.js
@@ -0,0 +1,30 @@
+/* jshint node: true */
+
+var mongoose = require('mongoose'),
+ _ = require('lodash'),
+ crypto = require('crypto'),
+ config = require('../../../config.json'),
+ util = require('../util');
+
+var CollaboratorSchema = new mongoose.Schema({
+ email: { type: String, required: true},
+ project_id: { type: mongoose.Schema.ObjectId, index: true },
+ user_id: { type: mongoose.Schema.ObjectId, index: true },
+ nonce: {
+ type: String,
+ default: "",
+ },
+ created_at: { type: Date },
+ updated_at: { type: Date },
+})
+
+CollaboratorSchema.statics.makeNonce = function(cb){
+ crypto.pseudoRandomBytes(256, function (err, buf){
+ var shasum = crypto.createHash('sha1')
+ shasum.update(buf)
+ cb( shasum.digest('hex') )
+ })
+}
+
+module.exports = exports = mongoose.model('collaborator', CollaboratorSchema);
+exports.schema = CollaboratorSchema;