FIX: Remove RBAC datasource permissions upon datasource deletion (#56530)

* FIX: Remove RBAC datasource permissions upon datasource deletion

* Use scope provider instead

* Fix test
This commit is contained in:
Gabriel MABILLE 2022-10-07 14:30:15 +02:00 committed by GitHub
parent 0eb3afbd14
commit 7595ed0668
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 3 deletions

View File

@ -144,7 +144,7 @@ func (ss *SqlStore) DeleteDataSource(ctx context.Context, cmd *datasources.Delet
// Remove associated AccessControl permissions // Remove associated AccessControl permissions
if _, errDeletingPerms := sess.Exec("DELETE FROM permission WHERE scope=?", if _, errDeletingPerms := sess.Exec("DELETE FROM permission WHERE scope=?",
ac.Scope("datasources", "id", fmt.Sprint(dsQuery.Result.Id))); errDeletingPerms != nil { ac.Scope(datasources.ScopeProvider.GetResourceScope(dsQuery.Result.Uid))); errDeletingPerms != nil {
return errDeletingPerms return errDeletingPerms
} }
} }

View File

@ -3,7 +3,6 @@ package service
import ( import (
"context" "context"
"errors" "errors"
"fmt"
"strconv" "strconv"
"testing" "testing"
"time" "time"
@ -319,7 +318,7 @@ func TestIntegrationDataAccess(t *testing.T) {
_, err := sess.Table("permission").Insert(ac.Permission{ _, err := sess.Table("permission").Insert(ac.Permission{
RoleID: 1, RoleID: 1,
Action: "datasources:read", Action: "datasources:read",
Scope: ac.Scope("datasources", "id", fmt.Sprintf("%d", ds.Id)), Scope: datasources.ScopeProvider.GetResourceScope(ds.Uid),
Updated: time.Now(), Updated: time.Now(),
Created: time.Now(), Created: time.Now(),
}) })