Browse Source

apply mongoose-unique-validator

Yuki Takei 8 years ago
parent
commit
0dbf54a47a
4 changed files with 16 additions and 8 deletions
  1. 3 1
      lib/models/user.js
  2. 0 6
      lib/routes/me.js
  3. 1 0
      package.json
  4. 12 1
      yarn.lock

+ 3 - 1
lib/models/user.js

@@ -2,6 +2,7 @@ module.exports = function(crowi) {
   var debug = require('debug')('crowi:models:user')
     , mongoose = require('mongoose')
     , mongoosePaginate = require('mongoose-paginate')
+    , uniqueValidator = require('mongoose-unique-validator')
     , crypto = require('crypto')
     , async = require('async')
     , ObjectId = mongoose.Schema.Types.ObjectId
@@ -31,7 +32,7 @@ module.exports = function(crowi) {
     googleId: String,
     name: { type: String },
     username: { type: String, index: true },
-    email: { type: String, required: true, index: true  },
+    email: { type: String, required: true, unique: true },
     introduction: { type: String },
     password: String,
     apiToken: String,
@@ -46,6 +47,7 @@ module.exports = function(crowi) {
     admin: { type: Boolean, default: 0, index: true  }
   });
   userSchema.plugin(mongoosePaginate);
+  userSchema.plugin(uniqueValidator);
 
   userEvent.on('activated', userEvent.onActivated);
 

+ 0 - 6
lib/routes/me.js

@@ -90,12 +90,6 @@ module.exports = function(crowi, app) {
       }
 
       User.findOne({email: email}, (err, existingUserData) => {
-        if (existingUserData) {
-          debug('Email address was duplicated');
-          req.form.errors.push('It can not be changed to that mail address');
-          return res.render('me/index', {});
-        }
-
         userData.update(name, email, lang, (err, userData) => {
           if (err) {
             Object.keys(err.errors).forEach((e) => {

+ 1 - 0
package.json

@@ -92,6 +92,7 @@
     "moment": "^2.18.0",
     "mongoose": "^4.11.1",
     "mongoose-paginate": "5.0.x",
+    "mongoose-unique-validator": "^1.0.6",
     "multer": "~1.3.0",
     "node-sass": "^4.5.0",
     "nodemailer": "^4.0.1",

+ 12 - 1
yarn.lock

@@ -3873,7 +3873,11 @@ lodash.create@3.1.1:
     lodash._basecreate "^3.0.0"
     lodash._isiterateecall "^3.0.0"
 
-lodash.get@^4.4.2:
+lodash.foreach@^4.1.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
+
+lodash.get@^4.0.2, lodash.get@^4.4.2:
   version "4.4.2"
   resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
 
@@ -4265,6 +4269,13 @@ mongoose-paginate@5.0.x:
   dependencies:
     bluebird "3.0.5"
 
+mongoose-unique-validator@^1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/mongoose-unique-validator/-/mongoose-unique-validator-1.0.6.tgz#fab31e68c1a5ba6f5b05da8e93842db55eb0a3b1"
+  dependencies:
+    lodash.foreach "^4.1.0"
+    lodash.get "^4.0.2"
+
 mongoose@^4.11.1:
   version "4.11.12"
   resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.11.12.tgz#48ebd5cad051f6ddfd46648b86a19c7fd30e36db"