delete user from user_thirds, too
This commit is contained in:
@@ -441,6 +441,12 @@ func (os *OauthService) UnBindThird(thirdType string, userid uint) error {
|
|||||||
return global.DB.Where("user_id = ? and third_type = ?", userid, thirdType).Delete(&model.UserThird{}).Error
|
return global.DB.Where("user_id = ? and third_type = ?", userid, thirdType).Delete(&model.UserThird{}).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeleteUserByUserId: When user is deleted, delete all third party bindings
|
||||||
|
func (os *OauthService) DeleteUserByUserId(userid uint) error {
|
||||||
|
return global.DB.Where("user_id = ?", userid).Delete(&model.UserThird{}).Error
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// InfoById 根据id取用户信息
|
// InfoById 根据id取用户信息
|
||||||
func (os *OauthService) InfoById(id uint) *model.Oauth {
|
func (os *OauthService) InfoById(id uint) *model.Oauth {
|
||||||
u := &model.Oauth{}
|
u := &model.Oauth{}
|
||||||
|
|||||||
@@ -148,8 +148,24 @@ func (us *UserService) Create(u *model.User) error {
|
|||||||
func (us *UserService) Logout(u *model.User, token string) error {
|
func (us *UserService) Logout(u *model.User, token string) error {
|
||||||
return global.DB.Where("user_id = ? and token = ?", u.Id, token).Delete(&model.UserToken{}).Error
|
return global.DB.Where("user_id = ? and token = ?", u.Id, token).Delete(&model.UserToken{}).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete 删除用户和oauth信息
|
||||||
func (us *UserService) Delete(u *model.User) error {
|
func (us *UserService) Delete(u *model.User) error {
|
||||||
return global.DB.Delete(u).Error
|
// 使用锁进行保护,确保用户删除和 OAuth 删除的原子性
|
||||||
|
global.Lock.Lock("DeleteUserByUserId")
|
||||||
|
defer global.Lock.UnLock("DeleteUserByUserId")
|
||||||
|
|
||||||
|
// 删除用户
|
||||||
|
if err := global.DB.Delete(u).Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除关联的 OAuth 信息
|
||||||
|
if err := AllService.OauthService.DeleteUserByUserId(u.Id); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update 更新
|
// Update 更新
|
||||||
|
|||||||
Reference in New Issue
Block a user