Просмотр исходного кода

ensure to work even if email is undefined

Yuki Takei 8 лет назад
Родитель
Сommit
20fb3bfae8
4 измененных файлов с 18 добавлено и 4 удалено
  1. 12 0
      lib/routes/me.js
  2. 2 1
      lib/util/middlewares.js
  3. 2 2
      lib/views/me/index.html
  4. 2 1
      resource/js/components/User/UserPicture.js

+ 12 - 0
lib/routes/me.js

@@ -84,10 +84,14 @@ module.exports = function(crowi, app) {
       var email = userForm.email;
       var lang= userForm.lang;
 
+      /*
+       * disabled because the system no longer allows undefined email -- 2017.10.06 Yuki Takei
+       *
       if (!User.isEmailValid(email)) {
         req.form.errors.push('You can\'t update to that email address');
         return res.render('me/index', {});
       }
+      */
 
       User.findOneAndUpdate(
         { email: userData.email },                  // query
@@ -107,10 +111,14 @@ module.exports = function(crowi, app) {
         });
 
     } else { // method GET
+      /*
+       * disabled because the system no longer allows undefined email -- 2017.10.06 Yuki Takei
+       *
       /// そのうちこのコードはいらなくなるはず
       if (!userData.isEmailSet()) {
         req.flash('warningMessage', 'メールアドレスが設定されている必要があります');
       }
+      */
 
       return res.render('me/index', {
       });
@@ -151,11 +159,15 @@ module.exports = function(crowi, app) {
     var passwordForm = req.body.mePassword;
     var userData = req.user;
 
+    /*
+      * disabled because the system no longer allows undefined email -- 2017.10.06 Yuki Takei
+      *
     // パスワードを設定する前に、emailが設定されている必要がある (schemaを途中で変更したため、最初の方の人は登録されていないかもしれないため)
     // そのうちこのコードはいらなくなるはず
     if (!userData.isEmailSet()) {
       return res.redirect('/me');
     }
+    */
 
     if (req.method == 'POST' && req.form.isValid) {
       var newPassword = passwordForm.newPassword;

+ 2 - 1
lib/util/middlewares.js

@@ -75,7 +75,8 @@ exports.swigFilters = function(app, swig) {
 
   // define a function for Gravatar
   const generateGravatarSrc = function(user) {
-    const hash = md5(user.email.trim().toLowerCase());
+    const email = user.email || '';
+    const hash = md5(email.trim().toLowerCase());
     return `https://gravatar.com/avatar/${hash}`;
   };
 

+ 2 - 2
lib/views/me/index.html

@@ -56,10 +56,10 @@
           <input class="form-control" type="text" name="userForm[name]" value="{{ user.name }}" required>
         </div>
       </div>
-      <div class="form-group {% if not user.email %}has-error{% endif %}">
+      <div class="form-group">
         <label for="userForm[email]" class="col-sm-2 control-label">{{ t('Email') }}</label>
         <div class="col-sm-4">
-          <input class="form-control" type="email" name="userForm[email]" value="{{ user.email }}" required>
+          <input class="form-control" type="email" name="userForm[email]" value="{{ user.email }}">
         </div>
         <div class="col-sm-offset-2 col-sm-10">
           {% if config.crowi['security:registrationWhiteList'] && config.crowi['security:registrationWhiteList'].length %}

+ 2 - 1
resource/js/components/User/UserPicture.js

@@ -17,7 +17,8 @@ export default class UserPicture extends React.Component {
   }
 
   generateGravatarSrc(user) {
-    const hash = md5(user.email.trim().toLowerCase());
+    const email = user.email || '';
+    const hash = md5(email.trim().toLowerCase());
     return `https://gravatar.com/avatar/${hash}`;
   }