Skip to content

Commit a360711

Browse files
Lei DaRader
authored andcommitted
write username change back to casdoor
1 parent 597ac9c commit a360711

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

user/component/user.go

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -676,35 +676,43 @@ func (c *userComponentImpl) genUniqueName() (string, error) {
676676
}
677677

678678
func (c *userComponentImpl) updateCasdoorUser(req *types.UpdateUserRequest) error {
679+
if req.UUID == nil {
680+
return errors.New("uuid is required to update casdoor user")
681+
}
682+
//nothing to update
683+
if req.Email == nil && req.Phone == nil && req.NewUserName == nil && req.Nickname == nil {
684+
return errors.New("nothing to update, at least one of email/phone/new_username/nickname is required")
685+
}
686+
679687
c.lazyInit()
680688

681689
casu, err := c.casc.GetUserByUserId(*req.UUID)
682690
if err != nil {
683-
return fmt.Errorf("failed to get user from casdoor,error:%w", err)
691+
return fmt.Errorf("failed to get user from casdoor by uuid: %s,error:%w", *req.UUID, err)
684692
}
685693
if casu == nil {
686-
return fmt.Errorf("user not exists in casdoor")
694+
return fmt.Errorf("user not found in casdoor by uuid:%s", *req.UUID)
687695
}
688-
var cols []string
689696
if req.Email != nil {
690697
casu.Email = *req.Email
691-
cols = append(cols, "email")
692698
}
693699
if req.Phone != nil {
694700
casu.Phone = *req.Phone
695-
cols = append(cols, "phone")
696701
}
697-
698-
if len(cols) == 0 {
699-
return nil
702+
if req.Nickname != nil {
703+
casu.DisplayName = *req.Nickname
700704
}
701-
702-
// casdoor update user api don't allow empty display name, so we set it but not update it
705+
// casdoor update user api don't allow empty display name, so we set it
703706
if casu.DisplayName == "" {
704707
casu.DisplayName = casu.Name
705708
}
706709

707-
_, err = c.casc.UpdateUserForColumns(casu, cols)
710+
// get id by user name before changed
711+
id := c.casc.GetId(casu.Name)
712+
if req.NewUserName != nil {
713+
casu.Name = *req.NewUserName
714+
}
715+
_, err = c.casc.UpdateUserById(id, casu)
708716
return err
709717
}
710718

0 commit comments

Comments
 (0)