From e9101ebc2e4b8f1491d5d7795d471b4a4e9d0642 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Mon, 11 May 2020 20:45:14 +0800 Subject: [PATCH] fix: isolated_devices domain filter not working --- pkg/compute/models/guests.go | 4 ++-- pkg/compute/models/isolated_devices.go | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index 70019d815f..3645527c2c 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -102,7 +102,7 @@ type SGuest struct { SBillingResourceBase SDeletePreventableResourceBase - SHostResourceBase `width:"36" charset:"ascii" nullable:"true" list:"admin" get:"admin" index:"true"` + SHostResourceBase `width:"36" charset:"ascii" nullable:"true" list:"user" get:"user" index:"true"` // CPU大小 VcpuCount int `nullable:"false" default:"1" list:"user" create:"optional"` @@ -138,7 +138,7 @@ type SGuest struct { // example: default SecgrpId string `width:"36" charset:"ascii" nullable:"true" get:"user" create:"optional"` // 管理员可见安全组Id - AdminSecgrpId string `width:"36" charset:"ascii" nullable:"true" get:"admin"` + AdminSecgrpId string `width:"36" charset:"ascii" nullable:"true" get:"domain"` SrcIpCheck tristate.TriState `nullable:"false" default:"true" create:"optional" list:"user" update:"user"` SrcMacCheck tristate.TriState `nullable:"false" default:"true" create:"optional" list:"user" update:"user"` diff --git a/pkg/compute/models/isolated_devices.go b/pkg/compute/models/isolated_devices.go index 7ed5de7196..c25c94de0d 100644 --- a/pkg/compute/models/isolated_devices.go +++ b/pkg/compute/models/isolated_devices.go @@ -759,9 +759,10 @@ func (manager *SIsolatedDeviceManager) FilterByOwner(q *sqlchemy.SQuery, owner m if owner != nil { switch scope { case rbacutils.ScopeProject, rbacutils.ScopeDomain: - hosts := HostManager.Query("id", "domain_id").SubQuery() + hostsQ := HostManager.Query("id") + hostsQ = HostManager.FilterByOwner(hostsQ, owner, scope) + hosts := hostsQ.SubQuery() q = q.Join(hosts, sqlchemy.Equals(q.Field("host_id"), hosts.Field("id"))) - q = q.Filter(sqlchemy.Equals(hosts.Field("domain_id"), owner.GetProjectDomainId())) } } return q