mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Alerting: Update permissions to reciever and template test API (#94282)
* add action "alert.notifications.receivers:test" to receiver creator * update API permissions to accept new granular actions
This commit is contained in:
@@ -455,6 +455,7 @@ const (
|
|||||||
ActionAlertingReceiversCreate = "alert.notifications.receivers:create"
|
ActionAlertingReceiversCreate = "alert.notifications.receivers:create"
|
||||||
ActionAlertingReceiversUpdate = "alert.notifications.receivers:write"
|
ActionAlertingReceiversUpdate = "alert.notifications.receivers:write"
|
||||||
ActionAlertingReceiversDelete = "alert.notifications.receivers:delete"
|
ActionAlertingReceiversDelete = "alert.notifications.receivers:delete"
|
||||||
|
ActionAlertingReceiversTest = "alert.notifications.receivers:test"
|
||||||
ActionAlertingReceiversPermissionsRead = "receivers.permissions:read"
|
ActionAlertingReceiversPermissionsRead = "receivers.permissions:read"
|
||||||
ActionAlertingReceiversPermissionsWrite = "receivers.permissions:write"
|
ActionAlertingReceiversPermissionsWrite = "receivers.permissions:write"
|
||||||
|
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ var (
|
|||||||
Group: AlertRolesGroup,
|
Group: AlertRolesGroup,
|
||||||
Permissions: []accesscontrol.Permission{
|
Permissions: []accesscontrol.Permission{
|
||||||
{Action: accesscontrol.ActionAlertingReceiversCreate},
|
{Action: accesscontrol.ActionAlertingReceiversCreate},
|
||||||
|
{Action: accesscontrol.ActionAlertingReceiversTest},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -212,9 +212,15 @@ func (api *API) authorize(method, path string) web.Handler {
|
|||||||
case http.MethodGet + "/api/alertmanager/grafana/config/api/v1/receivers":
|
case http.MethodGet + "/api/alertmanager/grafana/config/api/v1/receivers":
|
||||||
eval = ac.EvalPermission(ac.ActionAlertingNotificationsRead)
|
eval = ac.EvalPermission(ac.ActionAlertingNotificationsRead)
|
||||||
case http.MethodPost + "/api/alertmanager/grafana/config/api/v1/receivers/test":
|
case http.MethodPost + "/api/alertmanager/grafana/config/api/v1/receivers/test":
|
||||||
eval = ac.EvalPermission(ac.ActionAlertingNotificationsWrite)
|
eval = ac.EvalAny(
|
||||||
|
ac.EvalPermission(ac.ActionAlertingNotificationsWrite),
|
||||||
|
ac.EvalPermission(ac.ActionAlertingReceiversTest),
|
||||||
|
)
|
||||||
case http.MethodPost + "/api/alertmanager/grafana/config/api/v1/templates/test":
|
case http.MethodPost + "/api/alertmanager/grafana/config/api/v1/templates/test":
|
||||||
eval = ac.EvalPermission(ac.ActionAlertingNotificationsWrite)
|
eval = ac.EvalAny(
|
||||||
|
ac.EvalPermission(ac.ActionAlertingNotificationsWrite),
|
||||||
|
ac.EvalPermission(ac.ActionAlertingNotificationsTemplatesRead),
|
||||||
|
)
|
||||||
|
|
||||||
// External Alertmanager Paths
|
// External Alertmanager Paths
|
||||||
case http.MethodDelete + "/api/alertmanager/{DatasourceUID}/config/api/v1/alerts":
|
case http.MethodDelete + "/api/alertmanager/{DatasourceUID}/config/api/v1/alerts":
|
||||||
|
|||||||
Reference in New Issue
Block a user