Alerting: Managed receiver resource permission in receiver_svc (#93556)
* Alerting: Managed receiver resource permission in receiver_svc
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"strconv"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -29,6 +30,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
"github.com/grafana/grafana/pkg/server"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/ossaccesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol/resourcepermissions"
|
||||
"github.com/grafana/grafana/pkg/services/apiserver/endpoints/request"
|
||||
"github.com/grafana/grafana/pkg/services/datasources"
|
||||
@@ -434,7 +436,11 @@ func (c *K8sTestHelper) createTestUsers(orgName string) OrgUsers {
|
||||
Viewer: c.CreateUser("viewer", orgName, org.RoleViewer, nil),
|
||||
}
|
||||
users.Staff = c.CreateTeam("staff", "staff@"+orgName, users.Admin.Identity.GetOrgID())
|
||||
// TODO add admin and editor to staff
|
||||
|
||||
// Add Admin and Editor to Staff team as Admin and Member, respectively.
|
||||
c.AddOrUpdateTeamMember(users.Admin, users.Staff.ID, team.PermissionTypeAdmin)
|
||||
c.AddOrUpdateTeamMember(users.Editor, users.Staff.ID, team.PermissionTypeMember)
|
||||
|
||||
return users
|
||||
}
|
||||
|
||||
@@ -532,6 +538,42 @@ func (c *K8sTestHelper) SetPermissions(user User, permissions []resourcepermissi
|
||||
}
|
||||
}
|
||||
|
||||
func (c *K8sTestHelper) AddOrUpdateTeamMember(user User, teamID int64, permission team.PermissionType) {
|
||||
teamSvc, err := teamimpl.ProvideService(c.env.ReadReplStore, c.env.Cfg, tracing.InitializeTracerForTest())
|
||||
require.NoError(c.t, err)
|
||||
|
||||
orgService, err := orgimpl.ProvideService(c.env.SQLStore, c.env.Cfg, c.env.Server.HTTPServer.QuotaService)
|
||||
require.NoError(c.t, err)
|
||||
|
||||
cache := localcache.ProvideService()
|
||||
userSvc, err := userimpl.ProvideService(
|
||||
c.env.SQLStore, orgService, c.env.Cfg, teamSvc,
|
||||
cache, tracing.InitializeTracerForTest(), c.env.Server.HTTPServer.QuotaService,
|
||||
supportbundlestest.NewFakeBundleService())
|
||||
require.NoError(c.t, err)
|
||||
|
||||
teampermissionSvc, err := ossaccesscontrol.ProvideTeamPermissions(
|
||||
c.env.Cfg,
|
||||
c.env.FeatureToggles,
|
||||
c.env.Server.HTTPServer.RouteRegister,
|
||||
c.env.SQLStore,
|
||||
c.env.Server.HTTPServer.AccessControl,
|
||||
c.env.Server.HTTPServer.License,
|
||||
c.env.Server.HTTPServer.AlertNG.AccesscontrolService,
|
||||
teamSvc,
|
||||
userSvc,
|
||||
resourcepermissions.NewActionSetService(c.env.FeatureToggles),
|
||||
)
|
||||
require.NoError(c.t, err)
|
||||
|
||||
id, err := user.Identity.GetInternalID()
|
||||
require.NoError(c.t, err)
|
||||
|
||||
teamIDString := strconv.FormatInt(teamID, 10)
|
||||
_, err = teampermissionSvc.SetUserPermission(context.Background(), user.Identity.GetOrgID(), accesscontrol.User{ID: id}, teamIDString, permission.String())
|
||||
require.NoError(c.t, err)
|
||||
}
|
||||
|
||||
func (c *K8sTestHelper) NewDiscoveryClient() *discovery.DiscoveryClient {
|
||||
c.t.Helper()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user