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

+ 4 - 0
src/client/js/services/UserGroupDetailContainer.js

@@ -130,6 +130,10 @@ export default class UserGroupDetailContainer extends Container {
    */
   async addUserByUsername(username) {
     const res = await this.appContainer.apiv3.post(`/user-groups/${this.state.userGroup._id}/users/${username}`);
+
+    // do not add users for ducaplicate
+    if (res.data.userGroupRelation == null) { return }
+
     const { userGroupRelation } = res.data;
 
     this.setState((prevState) => {

+ 2 - 1
src/server/routes/apiv3/user-group.js

@@ -393,7 +393,8 @@ module.exports = (crowi) => {
       const isRelatedUserForGroup = await UserGroupRelation.isRelatedUserForGroup(userGroup, user);
 
       if (isRelatedUserForGroup) {
-        throw new Error('The user is already joined');
+        logger.warn('The user is already joined');
+        return res.apiv3();
       }
 
       const userGroupRelation = await UserGroupRelation.createRelation(userGroup, user);