From 0f0fd934e7bb1989deae68869932ae073636f0e5 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Tue, 2 Apr 2024 00:25:15 +0800 Subject: [PATCH] fix: idp list query filter by sso_domain --- pkg/apis/identity/input.go | 2 +- pkg/keystone/models/identity_provider.go | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/apis/identity/input.go b/pkg/apis/identity/input.go index 9cb26009ef..26defaaf9c 100644 --- a/pkg/apis/identity/input.go +++ b/pkg/apis/identity/input.go @@ -337,7 +337,7 @@ type IdentityProviderListInput struct { // 过滤支持SSO的认证源,如果值为all,则列出所有的全局认证源,否则可出sso为域ID的域认证源 // example: all - SsoDomain string `json:"sso"` + SsoDomain string `json:"sso_domain"` AutoCreateProject *bool `json:"auto_create_project"` AutoCreateUser *bool `json:"auto_create_user"` diff --git a/pkg/keystone/models/identity_provider.go b/pkg/keystone/models/identity_provider.go index ad42e564f5..fad44f3cd9 100644 --- a/pkg/keystone/models/identity_provider.go +++ b/pkg/keystone/models/identity_provider.go @@ -1163,7 +1163,10 @@ func (manager *SIdentityProviderManager) ListItemFilter( return nil, errors.Wrap(err, "FetchDomainByIdOrName") } } - q = q.Equals("domain_id", ssoDomain.Id) + q = q.Filter(sqlchemy.OR( + sqlchemy.Equals(q.Field("domain_id"), ssoDomain.Id), + sqlchemy.IsNullOrEmpty(q.Field("domain_id")), + )) } } if query.AutoCreateProject != nil {