From b1b860406179dc73cb59b27eabe3f95ca3f14a06 Mon Sep 17 00:00:00 2001 From: dushixiang Date: Fri, 12 Feb 2021 19:07:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E6=97=B6=E6=9C=AA=E5=88=A0=E9=99=A4=E4=B8=8E=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=85=B3=E7=B3=BB=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/api/asset.go | 8 +++++++- pkg/api/command.go | 8 +++++++- pkg/api/credential.go | 8 +++++++- pkg/model/asset.go | 4 ++-- pkg/model/command.go | 4 ++-- pkg/model/credential.go | 4 ++-- pkg/model/resource-sharer.go | 4 ++++ 7 files changed, 31 insertions(+), 9 deletions(-) diff --git a/pkg/api/asset.go b/pkg/api/asset.go index 5b2de68..c106283 100644 --- a/pkg/api/asset.go +++ b/pkg/api/asset.go @@ -149,7 +149,13 @@ func AssetDeleteEndpoint(c echo.Context) error { if err := PreCheckAssetPermission(c, split[i]); err != nil { return err } - model.DeleteAssetById(split[i]) + if err := model.DeleteAssetById(split[i]); err != nil { + return err + } + // 删除资产与用户的关系 + if err := model.DeleteResourceSharerByResourceId(split[i]); err != nil { + return err + } } return Success(c, nil) diff --git a/pkg/api/command.go b/pkg/api/command.go index 1c4d2b2..4b5ccaf 100644 --- a/pkg/api/command.go +++ b/pkg/api/command.go @@ -68,7 +68,13 @@ func CommandDeleteEndpoint(c echo.Context) error { if err := PreCheckCommandPermission(c, split[i]); err != nil { return err } - model.DeleteCommandById(split[i]) + if err := model.DeleteCommandById(split[i]); err != nil { + return err + } + // 删除资产与用户的关系 + if err := model.DeleteResourceSharerByResourceId(split[i]); err != nil { + return err + } } return Success(c, nil) } diff --git a/pkg/api/credential.go b/pkg/api/credential.go index 55df0fe..eeb9cb1 100644 --- a/pkg/api/credential.go +++ b/pkg/api/credential.go @@ -123,7 +123,13 @@ func CredentialDeleteEndpoint(c echo.Context) error { if err := PreCheckCredentialPermission(c, split[i]); err != nil { return err } - model.DeleteCredentialById(split[i]) + if err := model.DeleteCredentialById(split[i]); err != nil { + return err + } + // 删除资产与用户的关系 + if err := model.DeleteResourceSharerByResourceId(split[i]); err != nil { + return err + } } return Success(c, nil) diff --git a/pkg/model/asset.go b/pkg/model/asset.go index 98e60dc..bd24932 100644 --- a/pkg/model/asset.go +++ b/pkg/model/asset.go @@ -155,8 +155,8 @@ func UpdateAssetActiveById(active bool, id string) { global.DB.Exec(sql, active, id) } -func DeleteAssetById(id string) { - global.DB.Where("id = ?", id).Delete(&Asset{}) +func DeleteAssetById(id string) error { + return global.DB.Where("id = ?", id).Delete(&Asset{}).Error } func CountAsset() (total int64, err error) { diff --git a/pkg/model/command.go b/pkg/model/command.go index a93e204..13d2418 100644 --- a/pkg/model/command.go +++ b/pkg/model/command.go @@ -77,6 +77,6 @@ func UpdateCommandById(o *Command, id string) { global.DB.Updates(o) } -func DeleteCommandById(id string) { - global.DB.Where("id = ?", id).Delete(&Command{}) +func DeleteCommandById(id string) error { + return global.DB.Where("id = ?", id).Delete(&Command{}).Error } diff --git a/pkg/model/credential.go b/pkg/model/credential.go index 31094e0..dcfcf60 100644 --- a/pkg/model/credential.go +++ b/pkg/model/credential.go @@ -95,8 +95,8 @@ func UpdateCredentialById(o *Credential, id string) { global.DB.Updates(o) } -func DeleteCredentialById(id string) { - global.DB.Where("id = ?", id).Delete(&Credential{}) +func DeleteCredentialById(id string) error { + return global.DB.Where("id = ?", id).Delete(&Credential{}).Error } func CountCredential() (total int64, err error) { diff --git a/pkg/model/resource-sharer.go b/pkg/model/resource-sharer.go index d75c919..5c3087a 100644 --- a/pkg/model/resource-sharer.go +++ b/pkg/model/resource-sharer.go @@ -102,6 +102,10 @@ func DeleteByUserIdAndResourceTypeAndResourceIdIn(userGroupId, userId, resourceT return db.Delete(&ResourceSharer{}).Error } +func DeleteResourceSharerByResourceId(resourceId string) error { + return global.DB.Where("resource_id = ?", resourceId).Delete(&ResourceSharer{}).Error +} + func AddSharerResources(userGroupId, userId, resourceType string, resourceIds []string) error { return global.DB.Transaction(func(tx *gorm.DB) (err error) {