This commit is contained in:
@@ -162,6 +162,16 @@ func HandleDeleteRule(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
ownerUID, err := getRuleOwnerUID(ruleID)
|
||||
if err != nil {
|
||||
response.ServerError(c, "获取规则所属用户失败")
|
||||
return
|
||||
}
|
||||
if ownerUID != userInfo.ID {
|
||||
response.Forbidden(c, "无权限操作该规则")
|
||||
return
|
||||
}
|
||||
|
||||
if err := DeleteRuleByID(ruleID, userInfo.ID); err != nil {
|
||||
response.ServerError(c, "删除规则失败")
|
||||
return
|
||||
|
||||
@@ -103,3 +103,18 @@ func maskRules(rules []model.Rule) []model.Rule {
|
||||
}
|
||||
return masked
|
||||
}
|
||||
|
||||
// getRuleOwnerUID 获取规则所属用户的 UID
|
||||
func getRuleOwnerUID(ruleID uint) (uint, error) {
|
||||
gormDB, err := db.GetGormDB()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
var rule model.Rule
|
||||
if err := gormDB.Select("uid").Where("id = ?", ruleID).First(&rule).Error; err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return rule.UID, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user