fix: 修复rds普通后台下账号权限问题

This commit is contained in:
Qu Xuan
2019-11-28 17:37:01 +08:00
parent e9b09e92ee
commit 464de3173e
2 changed files with 18 additions and 9 deletions
@@ -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
+9 -9
View File
@@ -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)
}