Alerting: Fix folder permissions for Editor role in Prometheus import (#109977)

Alerting: Fix folder permisisons for Editor role in Prometheus import
This commit is contained in:
Alexander Akhmetov
2025-08-22 13:15:53 +02:00
committed by GitHub
parent 33ca5f166f
commit b4ff398865
6 changed files with 87 additions and 13 deletions
@@ -1167,6 +1167,57 @@ func TestIntegrationConvertPrometheusEndpoints_Delete(t *testing.T) {
})
}
func TestIntegrationConvertPrometheusEndpoints_Editor(t *testing.T) {
if testing.Short() {
t.Skip("skipping integration test in short mode")
}
testinfra.SQLiteIntegrationTest(t)
dir, gpath := testinfra.CreateGrafDir(t, testinfra.GrafanaOpts{
DisableLegacyAlerting: true,
EnableUnifiedAlerting: true,
DisableAnonymous: true,
AppModeProduction: true,
EnableRecordingRules: true,
})
grafanaListedAddr, env := testinfra.StartGrafanaEnv(t, dir, gpath)
adminClient := newAlertingApiClient(grafanaListedAddr, "admin", "admin")
createUser(t, env.SQLStore, env.Cfg, user.CreateUserCommand{
DefaultOrgRole: string(org.RoleEditor),
Password: "password",
Login: "editor",
})
editorClient := newAlertingApiClient(grafanaListedAddr, "editor", "password")
ds := adminClient.CreateDatasource(t, datasources.DS_PROMETHEUS)
testGroup := apimodels.PrometheusRuleGroup{
Name: "test-group-permission-cache",
Interval: prommodel.Duration(60 * time.Second),
Rules: []apimodels.PrometheusRule{
{
Alert: "test-editor-permissions",
Expr: "vector(0)",
For: util.Pointer(prommodel.Duration(1 * time.Minute)),
},
},
}
ns := util.GenerateShortUID()
t.Run("editor can import rules that create new folder", func(t *testing.T) {
editorClient.ConvertPrometheusPostRuleGroup(t, ns, ds.Body.Datasource.UID, testGroup, nil)
group := editorClient.ConvertPrometheusGetRuleGroupRules(t, ns, testGroup.Name, nil)
require.Equal(t, testGroup.Name, group.Name)
require.Len(t, group.Rules, 1)
require.Equal(t, testGroup.Rules[0].Alert, group.Rules[0].Alert)
})
}
func TestIntegrationConvertPrometheusEndpoints_GroupLabels(t *testing.T) {
if testing.Short() {
t.Skip("skipping integration test in short mode")