fix(oauth): clear bindings when hard deleting users (#5582)

This commit is contained in:
Seefs
2026-06-18 12:16:23 +08:00
committed by GitHub
parent 1414569b63
commit 97eadbefa6
3 changed files with 19 additions and 10 deletions
+12 -4
View File
@@ -328,8 +328,12 @@ func HardDeleteUserById(id int) error {
if id == 0 {
return errors.New("id 为空!")
}
err := DB.Unscoped().Delete(&User{}, "id = ?", id).Error
return err
return DB.Transaction(func(tx *gorm.DB) error {
if err := deleteUserOAuthBindingsByUserId(tx, id); err != nil {
return err
}
return tx.Unscoped().Delete(&User{}, "id = ?", id).Error
})
}
func inviteUser(inviterId int) (err error) {
@@ -589,8 +593,12 @@ func (user *User) HardDelete() error {
if user.Id == 0 {
return errors.New("id 为空!")
}
err := DB.Unscoped().Delete(user).Error
return err
return DB.Transaction(func(tx *gorm.DB) error {
if err := deleteUserOAuthBindingsByUserId(tx, user.Id); err != nil {
return err
}
return tx.Unscoped().Delete(user).Error
})
}
// ValidateAndFill check password & user status