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

Deleted the redundant code and linked env variable to PasswordSettings.jsx file.

Shunm634-source 3 лет назад
Родитель
Сommit
d5c50ccd18

+ 1 - 1
packages/app/.env.development

@@ -8,7 +8,7 @@ APP_SITE_URL=http://localhost:3000
 FILE_UPLOAD=mongodb
 # MONGO_GRIDFS_TOTAL_LIMIT=10485760
 MATHJAX=1
-MIN_PASSWORD_LENGTH=10
+MIN_PASSWORD_LENGTH=8
 # NO_CDN=true
 MONGO_URI="mongodb://mongo:27017/growi"
 # REDIS_URI="http://redis:6379"

+ 1 - 1
packages/app/resource/locales/en_US/translation.json

@@ -214,7 +214,7 @@
     },
     "form_help": {
       "email": "You must have email address which listed below to sign up to this wiki.",
-      "password": "Your password must be at least 8 characters long.",
+      "password": "Your password must be at least {{target}} characters long.",
       "user_id": "The URL of pages you create will contain your User ID. Your User ID can consist of letters, numbers, and some symbols."
     }
   },

+ 1 - 1
packages/app/resource/locales/ja_JP/translation.json

@@ -216,7 +216,7 @@
     },
     "form_help": {
       "email": "この Wiki では以下のメールアドレスのみ登録可能です。",
-      "password": "パスワードには、8文字以上の半角英数字または記号等を設定してください。",
+      "password": "パスワードには、{{target}}文字以上の半角英数字または記号等を設定してください。",
       "user_id": "ユーザーIDは、ユーザーページのURLなどに利用されます。半角英数字と一部の記号のみ利用できます。"
     }
   },

+ 6 - 6
packages/app/src/components/Me/PasswordSettings.jsx

@@ -10,7 +10,6 @@ import { toastSuccess, toastError } from '~/client/util/apiNotification';
 
 import { withUnstatedContainers } from '../UnstatedUtils';
 
-
 class PasswordSettings extends React.Component {
 
   constructor(appContainer) {
@@ -24,6 +23,7 @@ class PasswordSettings extends React.Component {
       newPassword: '',
       newPasswordConfirm: '',
       isPasswordSet: false,
+      minPasswordLength: null,
     };
 
     this.onClickSubmit = this.onClickSubmit.bind(this);
@@ -36,8 +36,9 @@ class PasswordSettings extends React.Component {
 
     try {
       const res = await appContainer.apiv3Get('/personal-setting/is-password-set');
-      const { isPasswordSet } = res.data;
-      this.setState({ isPasswordSet });
+      const { passwordParams } = res.data;
+      this.setState({ isPasswordSet: passwordParams.isPasswordSet });
+      this.setState({ minPasswordLength: passwordParams.minPasswordLength });
     }
     catch (err) {
       toastError(err);
@@ -78,9 +79,8 @@ class PasswordSettings extends React.Component {
 
   render() {
     const { t } = this.props;
-    const { newPassword, newPasswordConfirm } = this.state;
+    const { newPassword, newPasswordConfirm, minPasswordLength } = this.state;
     const isIncorrectConfirmPassword = (newPassword !== newPasswordConfirm);
-
     if (this.state.retrieveError != null) {
       throw new Error(this.state.retrieveError.message);
     }
@@ -135,7 +135,7 @@ class PasswordSettings extends React.Component {
               onChange={(e) => { this.onChangeNewPasswordConfirm(e.target.value) }}
             />
 
-            <p className="form-text text-muted">{t('page_register.form_help.password') }</p>
+            <p className="form-text text-muted">{t('page_register.form_help.password', { target: minPasswordLength }) }</p>
           </div>
         </div>
 

+ 3 - 0
packages/app/src/server/routes/apiv3/forgot-password.js

@@ -4,12 +4,14 @@ import rateLimit from 'express-rate-limit';
 import injectResetOrderByTokenMiddleware from '~/server/middlewares/inject-reset-order-by-token-middleware';
 import PasswordResetOrder from '~/server/models/password-reset-order';
 import ErrorV3 from '~/server/models/vo/error-apiv3';
+import ConfigManager from '~/server/service/config-manager';
 import loggerFactory from '~/utils/logger';
 
 import { apiV3FormValidator } from '../../middlewares/apiv3-form-validator';
 import httpErrorHandler from '../../middlewares/http-error-handler';
 import { checkForgotPasswordEnabledMiddlewareFactory } from '../forgot-password';
 
+
 const logger = loggerFactory('growi:routes:apiv3:forgotPassword'); // eslint-disable-line no-unused-vars
 
 const express = require('express');
@@ -26,6 +28,7 @@ module.exports = (crowi) => {
   const csrf = require('../../middlewares/csrf')(crowi);
 
   const minPasswordLength = crowi.configManager.getConfig('crowi', 'app:minPasswordLength');
+  // console.log('minPassword Length is: ', minPasswordLength);
 
   const validator = {
     password: [

+ 5 - 3
packages/app/src/server/routes/apiv3/personal-setting.js

@@ -7,7 +7,6 @@ import loggerFactory from '~/utils/logger';
 import { apiV3FormValidator } from '../../middlewares/apiv3-form-validator';
 import EditorSettings from '../../models/editor-settings';
 import InAppNotificationSettings from '../../models/in-app-notification-settings';
-import ConfigLoader from '../../service/config-loader';
 
 const logger = loggerFactory('growi:routes:apiv3:personal-setting');
 
@@ -184,8 +183,11 @@ module.exports = (crowi) => {
 
     try {
       const user = await User.findUserByUsername(username);
-      const isPasswordSet = user.isPasswordSet();
-      return res.apiv3({ isPasswordSet });
+      const passwordParams = {
+        isPasswordSet: user.isPasswordSet(),
+        minPasswordLength: crowi.configManager.getConfig('crowi', 'app:minPasswordLength'),
+      };
+      return res.apiv3({ passwordParams });
     }
     catch (err) {
       logger.error(err);