mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #7741 from swordqiu/hotfix/qj-search-project-domain-by-chsname
fix: search by chs projectname or domainname
This commit is contained in:
@@ -106,9 +106,16 @@ func (manager *SDomainizedResourceBaseManager) ListItemFilter(
|
||||
query apis.DomainizedResourceListInput,
|
||||
) (*sqlchemy.SQuery, error) {
|
||||
if len(query.ProjectDomainIds) > 0 {
|
||||
// make sure ids are not utf8 string
|
||||
idList := make([]string, 0)
|
||||
for _, pid := range query.ProjectDomainIds {
|
||||
if !stringutils2.IsUtf8(pid) {
|
||||
idList = append(idList, pid)
|
||||
}
|
||||
}
|
||||
tenants := TenantCacheManager.GetDomainQuery().SubQuery()
|
||||
subq := tenants.Query(tenants.Field("id")).Filter(sqlchemy.OR(
|
||||
sqlchemy.In(tenants.Field("id"), query.ProjectDomainIds),
|
||||
sqlchemy.In(tenants.Field("id"), idList),
|
||||
sqlchemy.In(tenants.Field("name"), query.ProjectDomainIds),
|
||||
)).SubQuery()
|
||||
q = q.In("domain_id", subq)
|
||||
|
||||
@@ -101,9 +101,16 @@ func (manager *SProjectizedResourceBaseManager) ListItemFilter(
|
||||
return nil, errors.Wrap(err, "SDomainizedResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
if len(query.ProjectIds) > 0 {
|
||||
// make sure ids are not utf8 string
|
||||
idList := make([]string, 0)
|
||||
for _, pid := range query.ProjectIds {
|
||||
if !stringutils2.IsUtf8(pid) {
|
||||
idList = append(idList, pid)
|
||||
}
|
||||
}
|
||||
tenants := TenantCacheManager.GetTenantQuery().SubQuery()
|
||||
subq := tenants.Query(tenants.Field("id")).Filter(sqlchemy.OR(
|
||||
sqlchemy.In(tenants.Field("id"), query.ProjectIds),
|
||||
sqlchemy.In(tenants.Field("id"), idList),
|
||||
sqlchemy.In(tenants.Field("name"), query.ProjectIds),
|
||||
)).SubQuery()
|
||||
q = q.In("tenant_id", subq)
|
||||
|
||||
@@ -132,9 +132,16 @@ func (manager *SIdentityBaseResourceManager) ListItemFilter(
|
||||
}
|
||||
// override manager.SDomainizedResourceBaseManager.ListItemFilter()
|
||||
if len(query.ProjectDomainIds) > 0 {
|
||||
// make sure ids are not utf8 string
|
||||
idList := make([]string, 0)
|
||||
for _, pid := range query.ProjectDomainIds {
|
||||
if !stringutils2.IsUtf8(pid) {
|
||||
idList = append(idList, pid)
|
||||
}
|
||||
}
|
||||
domains := DomainManager.Query().SubQuery()
|
||||
subq := domains.Query(domains.Field("id")).Filter(sqlchemy.OR(
|
||||
sqlchemy.In(domains.Field("id"), query.ProjectDomainIds),
|
||||
sqlchemy.In(domains.Field("id"), idList),
|
||||
sqlchemy.In(domains.Field("name"), query.ProjectDomainIds),
|
||||
))
|
||||
q = q.In("domain_id", subq.SubQuery())
|
||||
|
||||
Reference in New Issue
Block a user