summaryrefslogtreecommitdiff
path: root/server/lib/schemas
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/schemas')
-rw-r--r--server/lib/schemas/Documentation.js33
-rw-r--r--server/lib/schemas/Project.js8
-rw-r--r--server/lib/schemas/User.js13
3 files changed, 44 insertions, 10 deletions
diff --git a/server/lib/schemas/Documentation.js b/server/lib/schemas/Documentation.js
new file mode 100644
index 0000000..35cf34f
--- /dev/null
+++ b/server/lib/schemas/Documentation.js
@@ -0,0 +1,33 @@
+/* jshint node: true */
+
+
+var mongoose = require('mongoose'),
+ _ = require('lodash'),
+ util = require('../util');
+
+var DocumentationSchema = new mongoose.Schema({
+ name: {
+ type: String,
+ required: true,
+ unique: true,
+ validate: [function (val){
+ val = util.slugify(val || this.displayName || "")
+ if (! val.length) return false
+ if (val == "new") return false
+ return true
+ },"{PATH} name is required"]
+ },
+ displayName: {
+ type: String,
+ },
+ body: {
+ type: String,
+ default: ""
+ },
+ created_at: { type: Date },
+ updated_at: { type: Date },
+});
+
+
+module.exports = exports = mongoose.model('documentation', DocumentationSchema);
+exports.schema = DocumentationSchema;
diff --git a/server/lib/schemas/Project.js b/server/lib/schemas/Project.js
index a0382b3..5176e06 100644
--- a/server/lib/schemas/Project.js
+++ b/server/lib/schemas/Project.js
@@ -1,10 +1,9 @@
/* jshint node: true */
-var NONALPHANUMERICS_REGEX = new RegExp('[^-_a-zA-Z0-9]', 'g')
-
var mongoose = require('mongoose'),
_ = require('lodash'),
- config = require('../../../config.json');
+ config = require('../../../config.json'),
+ util = require('../util');
var ProjectSchema = new mongoose.Schema({
name: { type: String, required: true },
@@ -12,7 +11,7 @@ var ProjectSchema = new mongoose.Schema({
type: String,
required: true,
validate: [function (val){
- val = (val || this.displayName || "").replace(/\s/g,"-").replace(NONALPHANUMERICS_REGEX, '-').replace(/-+/g,"-")
+ val = util.sanitize(val || this.displayName || "")
if (! val.length) return false
return true
},"{PATH} name is required"]
@@ -33,6 +32,5 @@ var ProjectSchema = new mongoose.Schema({
updated_at: { type: Date },
});
-
module.exports = exports = mongoose.model('project', ProjectSchema);
exports.schema = ProjectSchema;
diff --git a/server/lib/schemas/User.js b/server/lib/schemas/User.js
index 24b0adf..5a93df2 100644
--- a/server/lib/schemas/User.js
+++ b/server/lib/schemas/User.js
@@ -1,7 +1,5 @@
/* jshint node: true */
-var NONALPHANUMERICS_REGEX = new RegExp('[^-_a-zA-Z0-9]', 'g')
-
var mongoose = require('mongoose'),
_ = require('lodash'),
crypto = require('crypto'),
@@ -16,7 +14,7 @@ var UserSchema = new mongoose.Schema({
type: String,
required: true,
validate: [function (val) {
- val = val.replace(NONALPHANUMERICS_REGEX, "")
+ val = util.slugify(val)
this.username = val.toLowerCase()
switch (val) {
case 'login':
@@ -27,6 +25,7 @@ var UserSchema = new mongoose.Schema({
case 'about':
case 'settings':
case 'assets':
+ case 'staff':
case 'admin':
case 'terms':
case 'api':
@@ -39,7 +38,7 @@ var UserSchema = new mongoose.Schema({
return true
}, "{PATH} is not an acceptable name"]
},
- email: { type: String, efault: "" },
+ email: { type: String, default: "" },
emailVerified: {
type: Boolean,
default: false,
@@ -57,7 +56,11 @@ var UserSchema = new mongoose.Schema({
website: { type: String, default: "" },
twitterName: { type: String, default: "" },
facebookUrl: { type: String, default: "" },
- isAdmin: { type: Boolean, default: false }
+ isStaff: { type: Boolean, default: false },
+ created_at: { type: Date },
+ updated_at: { type: Date },
+ created_ip: { type: Number },
+ last_ip: { type: Number },
});
UserSchema.methods.validPassword = function (pw) {