Shun Miyazawa 4 лет назад
Родитель
Сommit
34c3ea6297

+ 8 - 3
src/client/js/components/Admin/Users/ResendInvitationMailButton.jsx

@@ -6,20 +6,25 @@ import AdminUsersContainer from '../../../services/AdminUsersContainer';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 
 const ResendInvitationEmailButton = (props) => {
-  const { user } = props;
+  const { appContainer, user } = props;
   const { t } = useTranslation();
 
+  const onClickSendInvitationEmailButton = async() => {
+    const res = await appContainer.apiv3Put('users/send-invitation-email', { id: user._id });
+    console.log(res);
+  };
+
   return (
-    <button className="dropdown-item" type="button" onClick={() => { }}>
+    <button className="dropdown-item" type="button" onClick={() => { onClickSendInvitationEmailButton() }}>
       <i className="icon-fw icon-envelope"></i> {t('admin:user_management.user_table.send_invitation_email')}
     </button>
   );
 };
 
-
 const ResendInvitationEmailButtonWrapper = withUnstatedContainers(ResendInvitationEmailButton, [AppContainer, AdminUsersContainer]);
 
 ResendInvitationEmailButton.propTypes = {
+  appContainer: PropTypes.instanceOf(AppContainer).isRequired,
   user: PropTypes.object.isRequired,
 };
 

+ 22 - 0
src/server/routes/apiv3/users.js

@@ -403,6 +403,7 @@ module.exports = (crowi) => {
 
     // Create users
     const createUser = await User.createUsersByEmailList(emailList);
+    console.log(createUser.createdUserList[0].user);
     if (createUser.failedToCreateUserEmailList.length > 0) {
       failedEmailList = failedEmailList.concat(createUser.failedToCreateUserEmailList);
     }
@@ -816,5 +817,26 @@ module.exports = (crowi) => {
     }
   });
 
+  router.put('/send-invitation-email', async(req, res) => {
+    const { id } = req.body;
+
+    try {
+      const user = await User.findById(id);
+      const newPassword = await User.resetPasswordByRandomString(id);
+      const req = {
+        email: user.email,
+        password: newPassword,
+        user: { id },
+      };
+      const sendEmail = await sendEmailByUserList([req]);
+      console.log(sendEmail);
+      return res.apiv3({ newPassword });
+    }
+    catch (err) {
+      logger.error('Error', err);
+      return res.apiv3Err(new ErrorV3(err));
+    }
+  });
+
   return router;
 };