Răsfoiți Sursa

Merge pull request #222 from weseek/fix/220-create-user

Fix/220 create user
Yuki Takei 8 ani în urmă
părinte
comite
6f80519a71
2 a modificat fișierele cu 14 adăugiri și 2 ștergeri
  1. 11 1
      lib/models/user.js
  2. 3 1
      lib/routes/login-passport.js

+ 11 - 1
lib/models/user.js

@@ -33,6 +33,11 @@ module.exports = function(crowi) {
     name: { type: String },
     username: { type: String, required: true, unique: true },
     email: { type: String, unique: true, sparse: true },
+    //// The official settings
+    // username: { type: String, index: true },
+    // email: { type: String, required: true, index: true },
+    //// crowi-plus (>= 2.1.0, <2.3.0) settings
+    // email: { type: String, required: true, unique: true },
     introduction: { type: String },
     password: String,
     apiToken: String,
@@ -71,6 +76,11 @@ module.exports = function(crowi) {
     }
   }
 
+  function generateRandomEmail() {
+    const randomstr = generateRandomTempPassword();
+    return `change-it-${randomstr}@example.com`
+  }
+
   function generateRandomTempPassword () {
     var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!=-_';
     var password = '';
@@ -672,7 +682,7 @@ module.exports = function(crowi) {
 
     newUser.name = name;
     newUser.username = username;
-    newUser.email = email;
+    newUser.email = email || generateRandomEmail();   // don't set undefined for backward compatibility -- 2017.12.27 Yuki Takei
     if (password != null) {
       newUser.setPassword(password);
     }

+ 3 - 1
lib/routes/login-passport.js

@@ -105,11 +105,13 @@ module.exports = function(crowi, app) {
           });
         })
         .catch((err) => {
-          debug('findOrRegister error: ', err);
           if (err.name != null && err.name === 'DuplicatedUsernameException') {
             req.flash('isDuplicatedUsernameExceptionOccured', true);
             return next();
           }
+          else {
+            return next(err);
+          }
         });
 
     })(req, res, next);