itizawa 6 лет назад
Родитель
Сommit
bbdd44bc52

+ 12 - 4
src/client/js/components/Me/PasswordSettings.jsx

@@ -50,10 +50,13 @@ class PasswordSettings extends React.Component {
   }
 
   async onClickSubmit() {
-    const { t } = this.props;
+    const { t, appContainer } = this.props;
+    const { oldPassword, newPassword, newPasswordConfirm } = this.state;
 
     try {
-      // TODO GW-1136 create apiV3 for updating password
+      await appContainer.apiv3Put('/personal-setting/password', {
+        oldPassword, newPassword, newPasswordConfirm,
+      });
       toastSuccess(t('toaster.update_successed', { target: t('personal_settings.update_password') }));
     }
     catch (err) {
@@ -76,7 +79,7 @@ class PasswordSettings extends React.Component {
   render() {
     const { t } = this.props;
     const { newPassword, newPasswordConfirm } = this.state;
-    const isIncorrectConfirmPassword = (newPassword !== newPasswordConfirm && newPasswordConfirm !== '');
+    const isIncorrectConfirmPassword = (newPassword !== newPasswordConfirm);
 
     return (
       <React.Fragment>
@@ -130,7 +133,12 @@ class PasswordSettings extends React.Component {
 
         <div className="row my-3">
           <div className="col-xs-offset-4 col-xs-5">
-            <button type="button" className="btn btn-primary" onClick={this.onClickSubmit} disabled={this.state.retrieveError != null}>
+            <button
+              type="button"
+              className="btn btn-primary"
+              onClick={this.onClickSubmit}
+              disabled={this.state.retrieveError != null || this.isIncorrectConfirmPassword}
+            >
               {t('Update')}
             </button>
           </div>

+ 6 - 0
src/server/routes/apiv3/personal-setting.js

@@ -172,6 +172,12 @@ module.exports = (crowi) => {
     }
   });
 
+  // TODO swagger
+  router.put('/password', accessTokenParser, loginRequiredStrictly, async(req, res) => {
+    const { oldPassword, newPassword, newPasswordConfirm } = req.body;
+
+    return res.apiv3();
+  });
 
   return router;
 };