fix: skip the duplicated users when sync users (#928)

Signed-off-by: Yixiang Zhao <seriouszyx@foxmail.com>
This commit is contained in:
Yixiang Zhao
2022-07-30 22:24:23 +08:00
committed by GitHub
parent 2fec3f72ae
commit fb9b8f1662
2 changed files with 13 additions and 8 deletions

View File

@ -22,7 +22,7 @@ import (
func (syncer *Syncer) syncUsers() { func (syncer *Syncer) syncUsers() {
fmt.Printf("Running syncUsers()..\n") fmt.Printf("Running syncUsers()..\n")
users, userMap := syncer.getUserMap() users, userMap, userNameMap := syncer.getUserMap()
oUsers, oUserMap, err := syncer.getOriginalUserMap() oUsers, oUserMap, err := syncer.getOriginalUserMap()
if err != nil { if err != nil {
fmt.Printf(err.Error()) fmt.Printf(err.Error())
@ -44,9 +44,11 @@ func (syncer *Syncer) syncUsers() {
for _, oUser := range oUsers { for _, oUser := range oUsers {
id := oUser.Id id := oUser.Id
if _, ok := userMap[id]; !ok { if _, ok := userMap[id]; !ok {
newUser := syncer.createUserFromOriginalUser(oUser, affiliationMap) if _, ok := userNameMap[oUser.Name]; !ok {
fmt.Printf("New user: %v\n", newUser) newUser := syncer.createUserFromOriginalUser(oUser, affiliationMap)
newUsers = append(newUsers, newUser) fmt.Printf("New user: %v\n", newUser)
newUsers = append(newUsers, newUser)
}
} else { } else {
user := userMap[id] user := userMap[id]
oHash := syncer.calculateHash(oUser) oHash := syncer.calculateHash(oUser)

View File

@ -19,12 +19,15 @@ func (syncer *Syncer) getUsers() []*User {
return users return users
} }
func (syncer *Syncer) getUserMap() ([]*User, map[string]*User) { func (syncer *Syncer) getUserMap() ([]*User, map[string]*User, map[string]*User) {
users := syncer.getUsers() users := syncer.getUsers()
m := map[string]*User{} m1 := map[string]*User{}
m2 := map[string]*User{}
for _, user := range users { for _, user := range users {
m[user.Id] = user m1[user.Id] = user
m2[user.Name] = user
} }
return users, m
return users, m1, m2
} }