Browse Source

Merge pull request #1360 from weseek/master

release v3.5.20
Yuki Takei 6 năm trước cách đây
mục cha
commit
5a9ae2022b

+ 0 - 1
.eslintignore

@@ -4,5 +4,4 @@
 /public/**
 /src/client/js/legacy/thirdparty-js/**
 /src/client/js/util/reveal/plugins/markdown.js
-/test/**
 /tmp/**

+ 5 - 1
CHANGES.md

@@ -1,6 +1,10 @@
 # CHANGES
 
-## 3.5.19-RC
+## 3.5.20-RC
+
+* 
+
+## 3.5.19
 
 * Improvement: Drop unnecessary MongoDB collection indexes
 * Improvement: Organize MongoDB collection indexes uniqueness

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "growi",
-  "version": "3.5.19-RC",
+  "version": "3.5.20-RC",
   "description": "Team collaboration software using markdown",
   "tags": [
     "wiki",

+ 6 - 5
resource/locales/en-US/translation.json

@@ -715,11 +715,12 @@
     "current_users": "Current users:",
     "valid_email": "Valid email address is required",
     "existing_email": "The following emails already exist",
-    "give_user_admin": "Give {{username}} admin success",
-    "remove_user_admin": "Remove {{username}} admin success",
-    "activate_user_success": "Activating {{username}} success",
-    "deactivate_user_success": "Deactivating {{username}} success",
-    "remove_user_success": "Removing {{username}} success"
+    "give_user_admin": "Succeeded to give {{username}} admin",
+    "remove_user_admin": "Succeeded to remove {{username}} admin ",
+    "activate_user_success": "Succeeded to activating {{username}}",
+    "deactivate_user_success": "Succeeded to deactivate {{username}}",
+    "remove_user_success": "Succeeded to removing {{username}} ",
+    "remove_external_user_success": "Succeeded to remove {{accountId}} "
   },
 
   "user_group_management": {

+ 3 - 1
resource/locales/ja/translation.json

@@ -703,7 +703,9 @@
     "remove_user_admin": "{{username}}を管理者から外しました",
     "activate_user_success": "{{username}}を有効化しました",
     "deactivate_user_success": "{{username}}を無効化しました",
-    "remove_user_success": "{{username}}を削除しました"
+    "remove_user_success": "{{username}}を削除しました",
+    "remove_external_user_success": "{{accountId}}を削除しました "
+
   },
 
   "user_group_management": {

+ 2 - 2
src/client/js/components/Admin/Users/ExternalAccountTable.jsx

@@ -25,8 +25,8 @@ class ExternalAccountTable extends React.Component {
     const { t } = this.props;
 
     try {
-      const username = await this.props.adminExternalAccountsContainer.removeExternal(externalAccountId);
-      toastSuccess(t('user_management.remove_user_success', { username }));
+      const accountId = await this.props.adminExternalAccountsContainer.removeExternalAccountById(externalAccountId);
+      toastSuccess(t('user_management.remove_external_user_success', { accountId }));
     }
     catch (err) {
       toastError(err);

+ 4 - 3
src/client/js/services/AdminExternalAccountsContainer.js

@@ -63,10 +63,11 @@ export default class AdminExternalAccountsContainer extends Container {
    * @memberOf AdminExternalAccountsContainer
    * @param {string} externalAccountId id of the External Account to be removed
    */
-  async removeExternal(externalAccountId) {
+  async removeExternalAccountById(externalAccountId) {
     const res = await this.appContainer.apiv3.delete(`/users/external-accounts/${externalAccountId}/remove`);
-    const externalAccountData = res.data.externalAccount.user;
-    return externalAccountData;
+    const deletedUserData = res.data.externalAccount;
+    await this.retrieveExternalAccountsByPagingNum(this.state.activePage);
+    return deletedUserData.accountId;
   }
 
 }

+ 8 - 2
src/client/js/services/AdminUsersContainer.js

@@ -75,6 +75,7 @@ export default class AdminUsersContainer extends Container {
       sendEmail,
     });
     const { emailList } = response.data;
+    await this.retrieveUsersByPagingNum(this.state.activePage);
     return emailList;
   }
 
@@ -115,6 +116,7 @@ export default class AdminUsersContainer extends Container {
   async giveUserAdmin(userId) {
     const response = await this.appContainer.apiv3.put(`/users/${userId}/giveAdmin`);
     const { username } = response.data.userData;
+    await this.retrieveUsersByPagingNum(this.state.activePage);
     return username;
   }
 
@@ -127,6 +129,7 @@ export default class AdminUsersContainer extends Container {
   async removeUserAdmin(userId) {
     const response = await this.appContainer.apiv3.put(`/users/${userId}/removeAdmin`);
     const { username } = response.data.userData;
+    await this.retrieveUsersByPagingNum(this.state.activePage);
     return username;
   }
 
@@ -139,6 +142,7 @@ export default class AdminUsersContainer extends Container {
   async activateUser(userId) {
     const response = await this.appContainer.apiv3.put(`/users/${userId}/activate`);
     const { username } = response.data.userData;
+    await this.retrieveUsersByPagingNum(this.state.activePage);
     return username;
   }
 
@@ -151,6 +155,7 @@ export default class AdminUsersContainer extends Container {
   async deactivateUser(userId) {
     const response = await this.appContainer.apiv3.put(`/users/${userId}/deactivate`);
     const { username } = response.data.userData;
+    await this.retrieveUsersByPagingNum(this.state.activePage);
     return username;
   }
 
@@ -162,8 +167,9 @@ export default class AdminUsersContainer extends Container {
    */
   async removeUser(userId) {
     const response = await this.appContainer.apiv3.delete(`/users/${userId}/remove`);
-    const { username } = response.data.userData;
-    return username;
+    const removedUserData = response.data.userData;
+    await this.retrieveUsersByPagingNum(this.state.activePage);
+    return removedUserData.username;
   }
 
 }

+ 1 - 1
src/server/models/user.js

@@ -627,7 +627,7 @@ module.exports = function(crowi) {
   userSchema.statics.createUsersByEmailList = async function(emailList) {
     const User = this;
 
-    // check exists and get list of tyr to create
+    // check exists and get list of try to create
     const existingUserList = await User.find({ email: { $in: emailList }, userStatus: { $ne: STATUS_DELETED } });
     const existingEmailList = existingUserList.map((user) => { return user.email });
     const creationEmailList = emailList.filter((email) => { return existingEmailList.indexOf(email) === -1 });

+ 2 - 2
src/server/routes/apiv3/users.js

@@ -119,8 +119,8 @@ module.exports = (crowi) => {
    */
   router.post('/invite', loginRequiredStrictly, adminRequired, csrf, validator.inviteEmail, ApiV3FormValidator, async(req, res) => {
     try {
-      const emailList = await User.createUsersByInvitation(req.body.shapedEmailList, req.body.sendEmail);
-      return res.apiv3({ emailList });
+      const invitedUserList = await User.createUsersByInvitation(req.body.shapedEmailList, req.body.sendEmail);
+      return res.apiv3({ invitedUserList });
     }
     catch (err) {
       logger.error('Error', err);