diff --git a/pkg/compute/models/dbinstance_accounts.go b/pkg/compute/models/dbinstance_accounts.go index deecff79ca..0083dfe3b7 100644 --- a/pkg/compute/models/dbinstance_accounts.go +++ b/pkg/compute/models/dbinstance_accounts.go @@ -73,6 +73,15 @@ func (manager *SDBInstanceAccountManager) ResourceScope() rbacutils.TRbacScope { return rbacutils.ScopeProject } +func (self *SDBInstanceAccount) GetOwnerId() mcclient.IIdentityProvider { + instance, err := self.GetDBInstance() + if err != nil { + log.Errorf("failed to get instance for account %s(%s)", self.Name, self.Id) + return nil + } + return instance.GetOwnerId() +} + func (manager *SDBInstanceAccountManager) AllowListItems(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) bool { if jsonutils.QueryBoolean(query, "admin", false) && !db.IsAllowList(rbacutils.ScopeProject, userCred, manager) { return false diff --git a/pkg/compute/models/dbinstance_databases.go b/pkg/compute/models/dbinstance_databases.go index ddf4b37a50..e00e1d5c73 100644 --- a/pkg/compute/models/dbinstance_databases.go +++ b/pkg/compute/models/dbinstance_databases.go @@ -70,6 +70,15 @@ func (manager *SDBInstanceDatabaseManager) ResourceScope() rbacutils.TRbacScope return rbacutils.ScopeProject } +func (self *SDBInstanceDatabase) GetOwnerId() mcclient.IIdentityProvider { + instance, err := self.GetDBInstance() + if err != nil { + log.Errorf("failed to get instance for database %s(%s)", self.Name, self.Id) + return nil + } + return instance.GetOwnerId() +} + func (manager *SDBInstanceDatabaseManager) AllowListItems(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) bool { if jsonutils.QueryBoolean(query, "admin", false) && !db.IsAllowList(rbacutils.ScopeProject, userCred, manager) { return false @@ -117,15 +126,6 @@ func (self *SDBInstanceDatabase) AllowUpdateItem(ctx context.Context, userCred m return false } -func (self *SDBInstanceDatabase) GetOwnerId() mcclient.IIdentityProvider { - instance, err := self.GetDBInstance() - if err != nil { - log.Errorf("failed to get dbinstance for database %s(%s)", self.Id, self.Name) - return nil - } - return instance.GetOwnerId() -} - func (self *SDBInstanceDatabase) AllowDeleteItem(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) bool { return db.IsAdminAllowDelete(userCred, self) }