Merge pull request #5850 from swordqiu/hotfix/qj-project-domain-name-revisit

fix: allow any character in project/domain name, giveup displayname
This commit is contained in:
Zexi Li
2020-04-18 16:27:35 +08:00
committed by GitHub
3 changed files with 3 additions and 21 deletions
+2 -3
View File
@@ -162,9 +162,8 @@ func (self *SCASDriver) userTryJoinProject(ctx context.Context, usr *models.SUse
domainId = api.DEFAULT_DOMAIN_ID
}
if len(self.casConfig.CasProjectAttribute) > 0 {
casProjName := fetchAttribute(resp, self.casConfig.CasProjectAttribute)
if len(casProjName) > 0 {
projName := models.NormalizeProjectName(casProjName)
projName := fetchAttribute(resp, self.casConfig.CasProjectAttribute)
if len(projName) > 0 {
targetProject, err = models.ProjectManager.FetchProject("", projName, domainId, "")
if err != nil {
log.Errorf("fetch project %s fail %s", projName, err)
-10
View File
@@ -36,7 +36,6 @@ import (
type SDomainManager struct {
db.SStandaloneResourceBaseManager
db.SDnsNameValidatorManager
}
var (
@@ -67,8 +66,6 @@ type SDomain struct {
DomainId string `width:"64" charset:"ascii" default:"default" nullable:"false" index:"true"`
ParentId string `width:"64" charset:"ascii"`
Displayname string `with:"128" charset:"utf8" nullable:"true" list:"domain" update:"domain" create:"domain_optional"`
}
func (manager *SDomainManager) InitializeData() error {
@@ -225,9 +222,6 @@ func (domain *SDomain) CustomizeCreate(ctx context.Context, userCred mcclient.To
// domain.ParentId = api.KeystoneDomainRoot
domain.DomainId = api.KeystoneDomainRoot
domain.IsDomain = tristate.True
if len(domain.Displayname) == 0 {
domain.Displayname = domain.Name
}
return domain.SStandaloneResourceBase.CustomizeCreate(ctx, userCred, ownerId, query, data)
}
@@ -510,7 +504,3 @@ func (manager *SDomainManager) ValidateCreateData(
return input, nil
}
func (manager *SDomainManager) ValidateName(name string) error {
return manager.SDnsNameValidatorManager.ValidateName(name)
}
+1 -8
View File
@@ -41,7 +41,6 @@ import (
type SProjectManager struct {
SIdentityBaseResourceManager
db.SDnsNameValidatorManager
}
var ProjectManager *SProjectManager
@@ -80,8 +79,6 @@ type SProject struct {
ParentId string `width:"64" charset:"ascii" list:"domain" create:"domain_optional"`
IsDomain tristate.TriState `default:"false" nullable:"false"`
Displayname string `with:"128" charset:"utf8" nullable:"true" list:"domain" update:"domain" create:"domain_optional"`
}
func (manager *SProjectManager) GetContextManagers() [][]db.IModelManager {
@@ -285,9 +282,6 @@ func (manager *SProjectManager) QueryDistinctExtraField(q *sqlchemy.SQuery, fiel
func (model *SProject) CustomizeCreate(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data jsonutils.JSONObject) error {
model.ParentId = ownerId.GetProjectDomainId()
model.IsDomain = tristate.False
if len(model.Displayname) == 0 {
model.Displayname = model.Name
}
return model.SIdentityBaseResource.CustomizeCreate(ctx, userCred, ownerId, query, data)
}
@@ -627,13 +621,12 @@ func (project *SProject) GetUsages() []db.IUsage {
}
}
func (manager *SProjectManager) NewProject(ctx context.Context, name string, desc string, domainId string) (*SProject, error) {
func (manager *SProjectManager) NewProject(ctx context.Context, projectName string, desc string, domainId string) (*SProject, error) {
lockman.LockClass(ctx, manager, domainId)
defer lockman.ReleaseClass(ctx, manager, domainId)
project := &SProject{}
project.SetModelManager(ProjectManager, project)
projectName := NormalizeProjectName(name)
ownerId := &db.SOwnerId{}
if manager.NamespaceScope() == rbacutils.ScopeDomain {
ownerId.DomainId = domainId