mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-21 14:19:49 +08:00
fix(keystone): avoid sql error
This commit is contained in:
@@ -209,7 +209,7 @@ func (manager *SCloudproviderregionManager) QueryRelatedRegionIds(cloudAccounts
|
||||
if len(cloudAccounts) > 0 {
|
||||
cpq := CloudaccountManager.Query().SubQuery()
|
||||
subcpq := cpq.Query(cpq.Field("id")).Filter(sqlchemy.OR(
|
||||
sqlchemy.In(cpq.Field("id"), cloudAccounts),
|
||||
sqlchemy.In(cpq.Field("id"), stringutils2.RemoveUtf8Strings(cloudAccounts)),
|
||||
sqlchemy.In(cpq.Field("name"), cloudAccounts),
|
||||
)).SubQuery()
|
||||
providers := CloudproviderManager.Query().SubQuery()
|
||||
|
||||
@@ -1144,7 +1144,7 @@ func (manager *SCloudproviderManager) ListItemFilter(
|
||||
if len(accountArr) > 0 {
|
||||
cpq := CloudaccountManager.Query().SubQuery()
|
||||
subcpq := cpq.Query(cpq.Field("id")).Filter(sqlchemy.OR(
|
||||
sqlchemy.In(cpq.Field("id"), accountArr),
|
||||
sqlchemy.In(cpq.Field("id"), stringutils2.RemoveUtf8Strings(accountArr)),
|
||||
sqlchemy.In(cpq.Field("name"), accountArr),
|
||||
)).SubQuery()
|
||||
q = q.In("cloudaccount_id", subcpq)
|
||||
|
||||
@@ -1122,7 +1122,7 @@ func (sm *SWireManager) FetchByIdsOrNames(idOrNames []string) ([]SWire, error) {
|
||||
if len(idOrNames) == 1 {
|
||||
q.Filter(sqlchemy.OR(sqlchemy.Equals(q.Field("id"), idOrNames[0]), sqlchemy.Equals(q.Field("name"), idOrNames[0])))
|
||||
} else {
|
||||
q.Filter(sqlchemy.OR(sqlchemy.In(q.Field("id"), idOrNames), sqlchemy.In(q.Field("name"), idOrNames)))
|
||||
q.Filter(sqlchemy.OR(sqlchemy.In(q.Field("id"), stringutils2.RemoveUtf8Strings(idOrNames)), sqlchemy.In(q.Field("name"), idOrNames)))
|
||||
}
|
||||
ret := make([]SWire, 0, len(idOrNames))
|
||||
err := db.FetchModelObjects(sm, q, &ret)
|
||||
|
||||
@@ -527,7 +527,7 @@ func (manager *SAssignmentManager) queryAll(
|
||||
if len(users) > 0 {
|
||||
subq := UserManager.Query("id")
|
||||
subq = subq.Filter(sqlchemy.OR(
|
||||
sqlchemy.In(subq.Field("id"), users),
|
||||
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(users)),
|
||||
sqlchemy.ContainsAny(subq.Field("name"), users),
|
||||
))
|
||||
q = q.In("type", []string{api.AssignmentUserProject, api.AssignmentUserDomain}).In("user_id", subq.SubQuery())
|
||||
@@ -538,7 +538,7 @@ func (manager *SAssignmentManager) queryAll(
|
||||
if len(groups) > 0 {
|
||||
subq := GroupManager.Query("id")
|
||||
subq = subq.Filter(sqlchemy.OR(
|
||||
sqlchemy.In(subq.Field("id"), groups),
|
||||
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(groups)),
|
||||
sqlchemy.ContainsAny(subq.Field("name"), groups),
|
||||
))
|
||||
q = q.In("type", []string{api.AssignmentGroupProject, api.AssignmentGroupDomain}).In("group_id", subq.SubQuery())
|
||||
@@ -549,7 +549,7 @@ func (manager *SAssignmentManager) queryAll(
|
||||
if len(roles) > 0 {
|
||||
subq := RoleManager.Query("id")
|
||||
subq = subq.Filter(sqlchemy.OR(
|
||||
sqlchemy.In(subq.Field("id"), roles),
|
||||
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(roles)),
|
||||
sqlchemy.ContainsAny(subq.Field("name"), roles),
|
||||
))
|
||||
q = q.In("role_id", subq.SubQuery())
|
||||
@@ -560,7 +560,7 @@ func (manager *SAssignmentManager) queryAll(
|
||||
if len(projects) > 0 {
|
||||
subq := ProjectManager.Query("id")
|
||||
subq = subq.Filter(sqlchemy.OR(
|
||||
sqlchemy.In(subq.Field("id"), projects),
|
||||
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(projects)),
|
||||
sqlchemy.ContainsAny(subq.Field("name"), projects),
|
||||
))
|
||||
q = q.In("project_id", subq.SubQuery()).In("type", []string{api.AssignmentUserProject, api.AssignmentGroupProject})
|
||||
@@ -574,7 +574,7 @@ func (manager *SAssignmentManager) queryAll(
|
||||
domainQ := DomainManager.Query("id", "name").SubQuery()
|
||||
subq = subq.Join(domainQ, sqlchemy.Equals(subq.Field("domain_id"), domainQ.Field("id")))
|
||||
subq = subq.Filter(sqlchemy.OR(
|
||||
sqlchemy.In(domainQ.Field("id"), projectDomains),
|
||||
sqlchemy.In(domainQ.Field("id"), stringutils2.RemoveUtf8Strings(projectDomains)),
|
||||
sqlchemy.ContainsAny(domainQ.Field("name"), projectDomains),
|
||||
))
|
||||
q = q.In("project_id", subq.SubQuery()).In("type", []string{api.AssignmentUserProject, api.AssignmentGroupProject})
|
||||
@@ -586,7 +586,7 @@ func (manager *SAssignmentManager) queryAll(
|
||||
if len(domains) > 0 {
|
||||
subq := DomainManager.Query("id")
|
||||
subq = subq.Filter(sqlchemy.OR(
|
||||
sqlchemy.In(subq.Field("id"), domains),
|
||||
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(domains)),
|
||||
sqlchemy.ContainsAny(subq.Field("name"), domains),
|
||||
))
|
||||
q = q.In("domain_id", subq.SubQuery()).In("type", []string{api.AssignmentUserDomain, api.AssignmentGroupDomain})
|
||||
@@ -670,7 +670,7 @@ func (manager *SAssignmentManager) FetchAll(
|
||||
if len(userStrs) > 0 {
|
||||
subq := UserManager.Query("id")
|
||||
subq = subq.Filter(sqlchemy.OR(
|
||||
sqlchemy.In(subq.Field("id"), userStrs),
|
||||
sqlchemy.In(subq.Field("id"), stringutils2.RemoveUtf8Strings(userStrs)),
|
||||
sqlchemy.ContainsAny(subq.Field("name"), userStrs),
|
||||
))
|
||||
q2 = q2.Filter(sqlchemy.In(memberships.Field("user_id"), subq.SubQuery()))
|
||||
|
||||
Reference in New Issue
Block a user