From fb9b8f16625cc1c92106c7bea852f945101d2357 Mon Sep 17 00:00:00 2001 From: Yixiang Zhao Date: Sat, 30 Jul 2022 22:24:23 +0800 Subject: [PATCH] fix: skip the duplicated users when sync users (#928) Signed-off-by: Yixiang Zhao --- object/syncer_sync.go | 10 ++++++---- object/syner_db_user.go | 11 +++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/object/syncer_sync.go b/object/syncer_sync.go index fb574239..ec20a417 100644 --- a/object/syncer_sync.go +++ b/object/syncer_sync.go @@ -22,7 +22,7 @@ import ( func (syncer *Syncer) syncUsers() { fmt.Printf("Running syncUsers()..\n") - users, userMap := syncer.getUserMap() + users, userMap, userNameMap := syncer.getUserMap() oUsers, oUserMap, err := syncer.getOriginalUserMap() if err != nil { fmt.Printf(err.Error()) @@ -44,9 +44,11 @@ func (syncer *Syncer) syncUsers() { for _, oUser := range oUsers { id := oUser.Id if _, ok := userMap[id]; !ok { - newUser := syncer.createUserFromOriginalUser(oUser, affiliationMap) - fmt.Printf("New user: %v\n", newUser) - newUsers = append(newUsers, newUser) + if _, ok := userNameMap[oUser.Name]; !ok { + newUser := syncer.createUserFromOriginalUser(oUser, affiliationMap) + fmt.Printf("New user: %v\n", newUser) + newUsers = append(newUsers, newUser) + } } else { user := userMap[id] oHash := syncer.calculateHash(oUser) diff --git a/object/syner_db_user.go b/object/syner_db_user.go index 241960ed..a34ba7aa 100644 --- a/object/syner_db_user.go +++ b/object/syner_db_user.go @@ -19,12 +19,15 @@ func (syncer *Syncer) getUsers() []*User { return users } -func (syncer *Syncer) getUserMap() ([]*User, map[string]*User) { +func (syncer *Syncer) getUserMap() ([]*User, map[string]*User, map[string]*User) { users := syncer.getUsers() - m := map[string]*User{} + m1 := map[string]*User{} + m2 := map[string]*User{} for _, user := range users { - m[user.Id] = user + m1[user.Id] = user + m2[user.Name] = user } - return users, m + + return users, m1, m2 }