68 lines
1.4 KiB
Go
68 lines
1.4 KiB
Go
package dualwrite
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/grafana/grafana/pkg/infra/db"
|
|
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
|
)
|
|
|
|
func TestZanzanaReconciler_hasBasicRolePermissions(t *testing.T) {
|
|
env := setupTestEnv(t)
|
|
|
|
r := &ZanzanaReconciler{
|
|
store: env.db,
|
|
}
|
|
|
|
ctx := context.Background()
|
|
require.False(t, r.hasBasicRolePermissions(ctx))
|
|
|
|
err := env.db.WithDbSession(ctx, func(sess *db.Session) error {
|
|
now := time.Now()
|
|
|
|
_, err := sess.Exec(
|
|
`INSERT INTO role (org_id, uid, name, display_name, group_name, description, hidden, version, created, updated)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
accesscontrol.GlobalOrgID,
|
|
"basic_viewer_uid_test",
|
|
accesscontrol.BasicRolePrefix+"viewer",
|
|
"Viewer",
|
|
"Basic",
|
|
"Viewer role",
|
|
false,
|
|
1,
|
|
now,
|
|
now,
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
var roleID int64
|
|
if _, err := sess.SQL(`SELECT id FROM role WHERE org_id = ? AND uid = ?`, accesscontrol.GlobalOrgID, "basic_viewer_uid_test").Get(&roleID); err != nil {
|
|
return err
|
|
}
|
|
|
|
_, err = sess.Exec(
|
|
`INSERT INTO permission (role_id, action, scope, kind, attribute, identifier, created, updated)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
roleID,
|
|
"dashboards:read",
|
|
"dashboards:*",
|
|
"",
|
|
"",
|
|
"",
|
|
now,
|
|
now,
|
|
)
|
|
return err
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
require.True(t, r.hasBasicRolePermissions(ctx))
|
|
}
|