Преглед изворни кода

123395 get new password in router

soumaeda пре 2 година
родитељ
комит
a9ddc6c053

+ 18 - 25
apps/app/src/components/Admin/Users/PasswordResetModal.jsx

@@ -21,7 +21,6 @@ class PasswordResetModal extends React.Component {
       temporaryPassword: [],
       temporaryPassword: [],
       isPasswordResetDone: false,
       isPasswordResetDone: false,
       sendEmail: false,
       sendEmail: false,
-      isCreateUserButtonPushed: false,
     };
     };
 
 
     this.resetPassword = this.resetPassword.bind(this);
     this.resetPassword = this.resetPassword.bind(this);
@@ -40,6 +39,21 @@ class PasswordResetModal extends React.Component {
     }
     }
   }
   }
 
 
+  renderButtons() {
+    const { t, isMailerSetup } = this.props;
+
+    return (
+      <>
+        <button type="submit" className="btn btn-primary" onClick={this.onClickSendNewPasswordButton} disabled={!isMailerSetup}>
+          {t('Send')}
+        </button>
+        <button type="submit" className="btn btn-danger" onClick={this.props.onClose}>
+          {t('Close')}
+        </button>
+      </>
+    );
+  }
+
   renderModalBodyBeforeReset() {
   renderModalBodyBeforeReset() {
     const { t, userForPasswordResetModal } = this.props;
     const { t, userForPasswordResetModal } = this.props;
 
 
@@ -89,16 +103,7 @@ class PasswordResetModal extends React.Component {
           <div>
           <div>
             <label className="form-text text-muted" dangerouslySetInnerHTML={{ __html: t('admin:mailer_setup_required') }} />
             <label className="form-text text-muted" dangerouslySetInnerHTML={{ __html: t('admin:mailer_setup_required') }} />
           </div>
           </div>
-          <div>
-            <button type="submit" className="btn btn-primary" onClick={this.onClickSendNewPasswordButton} disabled={!isMailerSetup}>
-              {t('Send')}
-            </button>
-          </div>
-          <div>
-            <button type="submit" className="btn btn-danger" onClick={this.props.onClose}>
-              {t('Close')}
-            </button>
-          </div>
+          {this.renderButtons()}
         </>
         </>
       );
       );
     }
     }
@@ -109,16 +114,7 @@ class PasswordResetModal extends React.Component {
           <p className="mb-0">{userForPasswordResetModal.username}</p>
           <p className="mb-0">{userForPasswordResetModal.username}</p>
           <p className="mb-0">{userForPasswordResetModal.email}</p>
           <p className="mb-0">{userForPasswordResetModal.email}</p>
         </div>
         </div>
-        <div>
-          <button type="submit" className="btn btn-primary" onClick={this.onClickSendNewPasswordButton} disabled={!isMailerSetup}>
-            {t('Send')}
-          </button>
-        </div>
-        <div>
-          <button type="submit" className="btn btn-danger" onClick={this.props.onClose}>
-            {t('Close')}
-          </button>
-        </div>
+        {this.renderButtons()}
       </>
       </>
     );
     );
   }
   }
@@ -131,7 +127,7 @@ class PasswordResetModal extends React.Component {
 
 
 
 
     try {
     try {
-      const res = await apiv3Put('/users/reset-password-email', { id: userForPasswordResetModal._id });
+      const res = await apiv3Put('/users/reset-password-email', { id: userForPasswordResetModal._id, newPassword: this.state.temporaryPassword });
       const { failedToSendEmail } = res.data;
       const { failedToSendEmail } = res.data;
       if (failedToSendEmail == null) {
       if (failedToSendEmail == null) {
         const msg = `Email has been sent ${userForPasswordResetModal.email}`;
         const msg = `Email has been sent ${userForPasswordResetModal.email}`;
@@ -145,9 +141,6 @@ class PasswordResetModal extends React.Component {
     catch (err) {
     catch (err) {
       toastError(err);
       toastError(err);
     }
     }
-    finally {
-      this.setState({ isCreateUserButtonPushed: false });
-    }
   }
   }
 
 
 
 

+ 3 - 5
apps/app/src/server/routes/apiv3/users.js

@@ -999,19 +999,17 @@ module.exports = (crowi) => {
 
 
   router.put('/reset-password-email', loginRequiredStrictly, adminRequired, addActivity, async(req, res) => {
   router.put('/reset-password-email', loginRequiredStrictly, adminRequired, addActivity, async(req, res) => {
     const { id } = req.body;
     const { id } = req.body;
-    const user = await User.findById(id);
-    const newPassword = await User.resetPasswordByRandomString(id);
 
 
     try {
     try {
+      const user = await User.findById(id);
       const userInfo = {
       const userInfo = {
         email: user.email,
         email: user.email,
-        password: newPassword,
-        user: { id },
+        password: req.body.newPassword,
       };
       };
 
 
       const sendEmail = await sendEmailByUser(userInfo);
       const sendEmail = await sendEmailByUser(userInfo);
 
 
-      return res.apiv3({ newPassword, user, failedToSendEmail: sendEmail.failedToSendEmailList[0] });
+      return res.apiv3({ user, failedToSendEmail: sendEmail.failedToSendEmailList[0] });
     }
     }
     catch (err) {
     catch (err) {
       logger.error('Error', err);
       logger.error('Error', err);