diff options
Diffstat (limited to 'server/lib/schemas')
| -rw-r--r-- | server/lib/schemas/Documentation.js | 33 | ||||
| -rw-r--r-- | server/lib/schemas/Project.js | 8 | ||||
| -rw-r--r-- | server/lib/schemas/User.js | 13 |
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) { |
