Jelajahi Sumber

show toaster

itizawa 6 tahun lalu
induk
melakukan
64737245b5

+ 10 - 1
src/client/js/components/Admin/Users/UserRemoveForm.jsx

@@ -2,6 +2,8 @@ import React from 'react';
 import PropTypes from 'prop-types';
 import { withTranslation } from 'react-i18next';
 
+import { toastSuccess, toastError } from '../../../util/apiNotification';
+
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
 
@@ -20,7 +22,14 @@ class UserRemoveForm extends React.Component {
   async onClickDeleteBtn() {
     const { appContainer, user } = this.props;
 
-    await appContainer.apiv3.delete(`/users/${user._id}/remove`, {});
+    try {
+      const response = await appContainer.apiv3.delete(`/users/${user._id}/remove`);
+      const { username } = response.data.userData;
+      toastSuccess(`Delete ${username} success`);
+    }
+    catch (err) {
+      toastError(err);
+    }
   }
 
   render() {

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

@@ -16,6 +16,8 @@ module.exports = (crowi) => {
   const {
     ErrorV3,
     User,
+    Page,
+    ExternalAccount,
   } = crowi.models;
 
   const { ApiV3FormValidator } = crowi.middlewares;
@@ -94,6 +96,8 @@ module.exports = (crowi) => {
     try {
       const userData = await User.findById(id);
       await userData.statusDelete();
+      await ExternalAccount.remove({ user: userData });
+      await Page.removeByPath(`/user/${userData.username}`);
 
       return res.apiv3({ userData });
     }