Răsfoiți Sursa

fix #358: Ensure not to save concealed email field to localStorage

Yuki Takei 8 ani în urmă
părinte
comite
32f1191a62
2 a modificat fișierele cu 10 adăugiri și 1 ștergeri
  1. 1 1
      lib/models/user.js
  2. 9 0
      lib/routes/user.js

+ 1 - 1
lib/models/user.js

@@ -12,7 +12,7 @@ module.exports = function(crowi) {
     , STATUS_SUSPENDED  = 3
     , STATUS_SUSPENDED  = 3
     , STATUS_DELETED    = 4
     , STATUS_DELETED    = 4
     , STATUS_INVITED    = 5
     , STATUS_INVITED    = 5
-    , USER_PUBLIC_FIELDS = '_id image isGravatarEnabled googleId name username email introduction status lang createdAt admin' // TODO: どこか別の場所へ...
+    , USER_PUBLIC_FIELDS = '_id image isEmailPublished isGravatarEnabled googleId name username email introduction status lang createdAt admin' // TODO: どこか別の場所へ...
 
 
     , LANG_EN    = 'en'
     , LANG_EN    = 'en'
     , LANG_EN_US = 'en-US'
     , LANG_EN_US = 'en-US'

+ 9 - 0
lib/routes/user.js

@@ -54,6 +54,15 @@ module.exports = function(crowi, app) {
     }
     }
 
 
     userFetcher
     userFetcher
+    .then(function(userList) {
+      return userList.map((user) => {
+        // omit email
+        if (true !== user.isEmailPublished) { // compare to 'true' because Crowi original data doesn't have 'isEmailPublished'
+          user.email = undefined;
+        }
+        return user;
+      });
+    })
     .then(function(userList) {
     .then(function(userList) {
       var result = {
       var result = {
         users: userList,
         users: userList,