diff --git a/internal/db/models/ip_item_dao.go b/internal/db/models/ip_item_dao.go index e5948314..4feab3de 100644 --- a/internal/db/models/ip_item_dao.go +++ b/internal/db/models/ip_item_dao.go @@ -82,8 +82,11 @@ func (this *IPItemDAO) DisableIPItem(tx *dbs.Tx, id int64, sourceUserId int64) e } var query = this.Query(tx) + + // 检查权限 if sourceUserId > 0 { - query.Attr("sourceUserId", sourceUserId) + query.Where("(sourceUserId=:sourceUserId OR listId IN (SELECT id FROM " + SharedIPListDAO.Table + " WHERE userId=:sourceUserId AND state=1))") + query.Param("sourceUserId", sourceUserId) } _, err = query. @@ -485,9 +488,9 @@ func (this *IPItemDAO) ExistsEnabledItem(tx *dbs.Tx, itemId int64) (bool, error) // CountAllEnabledIPItems 计算数量 func (this *IPItemDAO) CountAllEnabledIPItems(tx *dbs.Tx, sourceUserId int64, keyword string, ip string, listId int64, unread bool, eventLevel string, listType string) (int64, error) { var query = this.Query(tx) - if sourceUserId > 0 { + if sourceUserId > 0 { if listId <= 0 { - query.Where("((listId=" +types.String(firewallconfigs.GlobalListId)+ " AND sourceUserId=:sourceUserId) OR listId IN (SELECT id FROM " + SharedIPListDAO.Table + " WHERE userId=:sourceUserId AND state=1))") + query.Where("((listId=" + types.String(firewallconfigs.GlobalListId) + " AND sourceUserId=:sourceUserId) OR listId IN (SELECT id FROM " + SharedIPListDAO.Table + " WHERE userId=:sourceUserId AND state=1))") query.Param("sourceUserId", sourceUserId) } else if listId == firewallconfigs.GlobalListId { query.Attr("sourceUserId", sourceUserId) @@ -527,9 +530,9 @@ func (this *IPItemDAO) CountAllEnabledIPItems(tx *dbs.Tx, sourceUserId int64, ke // ListAllEnabledIPItems 搜索所有IP func (this *IPItemDAO) ListAllEnabledIPItems(tx *dbs.Tx, sourceUserId int64, keyword string, ip string, listId int64, unread bool, eventLevel string, listType string, offset int64, size int64) (result []*IPItem, err error) { var query = this.Query(tx) - if sourceUserId > 0 { + if sourceUserId > 0 { if listId <= 0 { - query.Where("((listId=" +types.String(firewallconfigs.GlobalListId)+ " AND sourceUserId=:sourceUserId) OR listId IN (SELECT id FROM " + SharedIPListDAO.Table + " WHERE userId=:sourceUserId AND state=1))") + query.Where("((listId=" + types.String(firewallconfigs.GlobalListId) + " AND sourceUserId=:sourceUserId) OR listId IN (SELECT id FROM " + SharedIPListDAO.Table + " WHERE userId=:sourceUserId AND state=1))") query.Param("sourceUserId", sourceUserId) } else if listId == firewallconfigs.GlobalListId { query.Attr("sourceUserId", sourceUserId)