fix: 删除认证源将关联用户信息移除

This commit is contained in:
TsMask
2025-08-14 10:45:22 +08:00
parent a1eefe9660
commit a9be1dcf6c
2 changed files with 17 additions and 0 deletions

View File

@@ -148,3 +148,17 @@ func (r SysLoginSource) DeleteByIds(ids []int64) int64 {
}
return tx.RowsAffected
}
// DeleteByUserSource 通过用户源删除用户 返回受影响行数
func (r SysLoginSource) DeleteByUserSource(uid string) int64 {
if uid == "" || uid == "#" {
return 0
}
tx := db.DB("").Where("user_source = ?", uid)
// 执行删除
if err := tx.Delete(&model.SysUser{}).Error; err != nil {
logger.Errorf("delete err => %v", err.Error())
return 0
}
return tx.RowsAffected
}

View File

@@ -54,6 +54,9 @@ func (s SysLoginSource) DeleteByIds(ids []int64) (int64, error) {
return 0, fmt.Errorf("no permission to access authentication source data")
}
if len(arr) == len(ids) {
for _, v := range arr {
s.sysLoginSourceRepository.DeleteByUserSource(v.UID)
}
return s.sysLoginSourceRepository.DeleteByIds(ids), nil
}
// return 0, fmt.Errorf("删除认证源信息失败!")