mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Bump provisioning to admin-only in lieu of dedicated RBAC permissions (#50366)
This commit is contained in:
parent
0cde283505
commit
28a47b56d2
@ -186,7 +186,7 @@ func (api *API) authorize(method, path string) web.Handler {
|
|||||||
http.MethodGet + "/api/v1/provisioning/mute-timings",
|
http.MethodGet + "/api/v1/provisioning/mute-timings",
|
||||||
http.MethodGet + "/api/v1/provisioning/mute-timings/{name}",
|
http.MethodGet + "/api/v1/provisioning/mute-timings/{name}",
|
||||||
http.MethodGet + "/api/v1/provisioning/alert-rules/{UID}":
|
http.MethodGet + "/api/v1/provisioning/alert-rules/{UID}":
|
||||||
return middleware.ReqSignedIn
|
return middleware.ReqOrgAdmin
|
||||||
|
|
||||||
case http.MethodPut + "/api/v1/provisioning/policies",
|
case http.MethodPut + "/api/v1/provisioning/policies",
|
||||||
http.MethodPost + "/api/v1/provisioning/contact-points",
|
http.MethodPost + "/api/v1/provisioning/contact-points",
|
||||||
@ -201,7 +201,7 @@ func (api *API) authorize(method, path string) web.Handler {
|
|||||||
http.MethodPut + "/api/v1/provisioning/alert-rules/{UID}",
|
http.MethodPut + "/api/v1/provisioning/alert-rules/{UID}",
|
||||||
http.MethodDelete + "/api/v1/provisioning/alert-rules/{UID}",
|
http.MethodDelete + "/api/v1/provisioning/alert-rules/{UID}",
|
||||||
http.MethodPut + "/api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}":
|
http.MethodPut + "/api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}":
|
||||||
return middleware.ReqEditorRole
|
return middleware.ReqOrgAdmin
|
||||||
}
|
}
|
||||||
|
|
||||||
if eval != nil {
|
if eval != nil {
|
||||||
|
@ -64,24 +64,24 @@ func TestProvisioning(t *testing.T) {
|
|||||||
require.Equal(t, 401, resp.StatusCode)
|
require.Equal(t, 401, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("viewer GET should succeed", func(t *testing.T) {
|
t.Run("viewer GET should 403", func(t *testing.T) {
|
||||||
req := createTestRequest("GET", url, "viewer", "")
|
req := createTestRequest("GET", url, "viewer", "")
|
||||||
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, resp.Body.Close())
|
require.NoError(t, resp.Body.Close())
|
||||||
|
|
||||||
require.Equal(t, 200, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("editor GET should succeed", func(t *testing.T) {
|
t.Run("editor GET should 403", func(t *testing.T) {
|
||||||
req := createTestRequest("GET", url, "editor", "")
|
req := createTestRequest("GET", url, "editor", "")
|
||||||
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, resp.Body.Close())
|
require.NoError(t, resp.Body.Close())
|
||||||
|
|
||||||
require.Equal(t, 200, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("admin GET should succeed", func(t *testing.T) {
|
t.Run("admin GET should succeed", func(t *testing.T) {
|
||||||
@ -114,14 +114,14 @@ func TestProvisioning(t *testing.T) {
|
|||||||
require.Equal(t, 403, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("editor PUT should succeed", func(t *testing.T) {
|
t.Run("editor PUT should 403", func(t *testing.T) {
|
||||||
req := createTestRequest("PUT", url, "editor", body)
|
req := createTestRequest("PUT", url, "editor", body)
|
||||||
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, resp.Body.Close())
|
require.NoError(t, resp.Body.Close())
|
||||||
|
|
||||||
require.Equal(t, 202, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("admin PUT should succeed", func(t *testing.T) {
|
t.Run("admin PUT should succeed", func(t *testing.T) {
|
||||||
@ -157,24 +157,24 @@ func TestProvisioning(t *testing.T) {
|
|||||||
require.Equal(t, 401, resp.StatusCode)
|
require.Equal(t, 401, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("viewer GET should succeed", func(t *testing.T) {
|
t.Run("viewer GET should 403", func(t *testing.T) {
|
||||||
req := createTestRequest("GET", url, "viewer", "")
|
req := createTestRequest("GET", url, "viewer", "")
|
||||||
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, resp.Body.Close())
|
require.NoError(t, resp.Body.Close())
|
||||||
|
|
||||||
require.Equal(t, 200, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("editor GET should succeed", func(t *testing.T) {
|
t.Run("editor GET should 403", func(t *testing.T) {
|
||||||
req := createTestRequest("GET", url, "editor", "")
|
req := createTestRequest("GET", url, "editor", "")
|
||||||
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, resp.Body.Close())
|
require.NoError(t, resp.Body.Close())
|
||||||
|
|
||||||
require.Equal(t, 200, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("admin GET should succeed", func(t *testing.T) {
|
t.Run("admin GET should succeed", func(t *testing.T) {
|
||||||
@ -207,14 +207,14 @@ func TestProvisioning(t *testing.T) {
|
|||||||
require.Equal(t, 403, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("editor POST should succeed", func(t *testing.T) {
|
t.Run("editor POST should 403", func(t *testing.T) {
|
||||||
req := createTestRequest("POST", url, "editor", body)
|
req := createTestRequest("POST", url, "editor", body)
|
||||||
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, resp.Body.Close())
|
require.NoError(t, resp.Body.Close())
|
||||||
|
|
||||||
require.Equal(t, 202, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("admin POST should succeed", func(t *testing.T) {
|
t.Run("admin POST should succeed", func(t *testing.T) {
|
||||||
@ -241,24 +241,24 @@ func TestProvisioning(t *testing.T) {
|
|||||||
require.Equal(t, 401, resp.StatusCode)
|
require.Equal(t, 401, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("viewer GET should succeed", func(t *testing.T) {
|
t.Run("viewer GET should 403", func(t *testing.T) {
|
||||||
req := createTestRequest("GET", url, "viewer", "")
|
req := createTestRequest("GET", url, "viewer", "")
|
||||||
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, resp.Body.Close())
|
require.NoError(t, resp.Body.Close())
|
||||||
|
|
||||||
require.Equal(t, 200, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("editor GET should succeed", func(t *testing.T) {
|
t.Run("editor GET should 403", func(t *testing.T) {
|
||||||
req := createTestRequest("GET", url, "editor", "")
|
req := createTestRequest("GET", url, "editor", "")
|
||||||
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, resp.Body.Close())
|
require.NoError(t, resp.Body.Close())
|
||||||
|
|
||||||
require.Equal(t, 200, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("admin GET should succeed", func(t *testing.T) {
|
t.Run("admin GET should succeed", func(t *testing.T) {
|
||||||
@ -285,24 +285,24 @@ func TestProvisioning(t *testing.T) {
|
|||||||
require.Equal(t, 401, resp.StatusCode)
|
require.Equal(t, 401, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("viewer GET should succeed", func(t *testing.T) {
|
t.Run("viewer GET should 403", func(t *testing.T) {
|
||||||
req := createTestRequest("GET", url, "viewer", "")
|
req := createTestRequest("GET", url, "viewer", "")
|
||||||
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, resp.Body.Close())
|
require.NoError(t, resp.Body.Close())
|
||||||
|
|
||||||
require.Equal(t, 200, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("editor GET should succeed", func(t *testing.T) {
|
t.Run("editor GET should 403", func(t *testing.T) {
|
||||||
req := createTestRequest("GET", url, "editor", "")
|
req := createTestRequest("GET", url, "editor", "")
|
||||||
|
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NoError(t, resp.Body.Close())
|
require.NoError(t, resp.Body.Close())
|
||||||
|
|
||||||
require.Equal(t, 200, resp.StatusCode)
|
require.Equal(t, 403, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("admin GET should succeed", func(t *testing.T) {
|
t.Run("admin GET should succeed", func(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user