Browse Source

Merge remote-tracking branch 'origin/fix-duplicate-email-handling' into wip-v1.6.3

Sotaro KARASAWA 8 years ago
parent
commit
f0b3af6495
1 changed files with 17 additions and 10 deletions
  1. 17 10
      lib/routes/me.js

+ 17 - 10
lib/routes/me.js

@@ -89,20 +89,27 @@ module.exports = function(crowi, app) {
         return res.render('me/index', {});
       }
 
-      userData.update(name, email, lang, function(err, userData) {
-        if (err) {
-          for (var e in err.errors) {
-            if (err.errors.hasOwnProperty(e)) {
-              req.form.errors.push(err.errors[e].message);
-            }
-          }
+      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', {});
         }
 
-        req.i18n.changeLanguage(lang);
-        req.flash('successMessage', req.t('Updated'));
-        return res.redirect('/me');
+        userData.update(name, email, lang, (err, userData) => {
+          if (err) {
+            Object.keys(err.errors).forEach((e) => {
+              req.form.errors.push(err.errors[e].message);
+            });
+            return res.render('me/index', {});
+          }
+
+          req.i18n.changeLanguage(lang);
+          req.flash('successMessage', req.t('Updated'));
+          return res.redirect('/me');
+        });
       });
+
     } else { // method GET
       /// そのうちこのコードはいらなくなるはず
       if (!userData.isEmailSet()) {