Merge pull request #5392 from swordqiu/hotfix/qj-scoped-resource-miss-fetch-owner

fix: scoped resource should override FetchOwnerId
This commit is contained in:
Zexi Li
2020-03-07 15:50:55 +08:00
committed by GitHub
+5 -1
View File
@@ -45,7 +45,7 @@ func (m *SScopedResourceBaseManager) FilterByOwner(q *sqlchemy.SQuery, userCred
switch scope {
case rbacutils.ScopeDomain:
q = q.Filter(sqlchemy.OR(
sqlchemy.Equals(q.Field("domain_id"), userCred.GetDomainId()),
sqlchemy.Equals(q.Field("domain_id"), userCred.GetProjectDomainId()),
sqlchemy.IsNullOrEmpty(q.Field("domain_id")),
))
case rbacutils.ScopeProject:
@@ -57,6 +57,10 @@ func (m *SScopedResourceBaseManager) FilterByOwner(q *sqlchemy.SQuery, userCred
return q
}
func (m *SScopedResourceBaseManager) FetchOwnerId(ctx context.Context, data jsonutils.JSONObject) (mcclient.IIdentityProvider, error) {
return FetchProjectInfo(ctx, data)
}
func (m *SScopedResourceBaseManager) ValidateCreateData(man IScopedResourceManager, ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, input api.ScopedResourceCreateInput) (api.ScopedResourceCreateInput, error) {
if input.Scope == "" {
input.Scope = string(rbacutils.ScopeSystem)