summaryrefslogtreecommitdiff
path: root/server/lib/schemas/User.js
diff options
context:
space:
mode:
authorJulie Lala <jules@okfoc.us>2014-06-04 00:31:01 -0400
committerJulie Lala <jules@okfoc.us>2014-06-04 00:31:01 -0400
commit80e1fcbc52870366f2e885fe82724960929765c9 (patch)
treed380e04e8d784c40606bdaad82dcd37d0e260de5 /server/lib/schemas/User.js
parent5fb0ad045820de96848e1bde8e2dba8a6853dd4d (diff)
parent90142bd07f926ef8a7f3ea86a563ec0ca648ca5d (diff)
Merge branch 'master' of github.com:okfocus/vvalls
Diffstat (limited to 'server/lib/schemas/User.js')
-rw-r--r--server/lib/schemas/User.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/server/lib/schemas/User.js b/server/lib/schemas/User.js
new file mode 100644
index 0000000..93c0cd3
--- /dev/null
+++ b/server/lib/schemas/User.js
@@ -0,0 +1,66 @@
+/* jshint node: true */
+
+var NONALPHANUMERICS_REGEX = new RegExp('[^-_a-zA-Z0-9]', 'g')
+
+var mongoose = require('mongoose'),
+ _ = require('lodash'),
+ config = require('../../../config.json');
+
+var UserSchema = new mongoose.Schema({
+ twitter_id: String,
+ displayName: String,
+ username: {
+ type: String,
+ required: true,
+ validate: [function (val) {
+ val = val.replace(NONALPHANUMERICS_REGEX, "")
+ this.username = val.toLowerCase()
+ switch (val) {
+ case 'login':
+ case 'logout':
+ case 'profile':
+ case 'auth':
+ case 'upload':
+ case 'about':
+ case 'settings':
+ case 'admin':
+ case 'terms':
+ case '':
+ return false
+ }
+ if (! this.displayName) { this.displayName = val; }
+ return true
+ }, "{PATH} is not an acceptable name"]
+ },
+ email: {
+ type: String,
+ default: "",
+ },
+ emailVerified: {
+ type: Boolean,
+ default: false,
+ },
+ password: {
+ type: String,
+ validate: [function (val) {
+ if (! val.length) return true
+ return true
+ }, "{PATH} is not an acceptable password"]
+ },
+ photo: {
+ type: String,
+ required: true
+ },
+ bio: {
+ type: String,
+ default: ""
+ },
+ links: [
+ { type: String, default: "" }
+ ],
+ isAdmin: { type: Boolean, default: false }
+});
+
+
+module.exports = exports = mongoose.model('user', UserSchema);
+exports.schema = UserSchema;