Merge pull request #10173 from swordqiu/hotfix/qj-cas-sso-create-duplicate-projects

fix(keystone): cas sso may create new project whenever user login
This commit is contained in:
Zexi Li
2021-02-06 10:35:46 +08:00
committed by GitHub
+6 -1
View File
@@ -40,6 +40,7 @@ import (
"yunion.io/x/onecloud/pkg/keystone/saml"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/util/logclient"
"yunion.io/x/onecloud/pkg/util/rbacutils"
"yunion.io/x/onecloud/pkg/util/samlutils/sp"
"yunion.io/x/onecloud/pkg/util/stringutils2"
)
@@ -1268,7 +1269,11 @@ func (idp *SIdentityProvider) TryUserJoinProject(attrConf api.SIdpAttributeOptio
if len(attrConf.ProjectAttribute) > 0 {
projName := fetchAttribute(attrs, attrConf.ProjectAttribute)
if len(projName) > 0 {
targetProject, err = ProjectManager.FetchProject("", projName, domainId, "")
projDomainId := ""
if ProjectManager.NamespaceScope() == rbacutils.ScopeDomain {
projDomainId = domainId
}
targetProject, err = ProjectManager.FetchProject("", projName, projDomainId, "")
if err != nil {
log.Errorf("fetch project %s fail %s", projName, err)
if errors.Cause(err) == sql.ErrNoRows && idp.AutoCreateProject.IsTrue() {