mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 12:32:43 +08:00
Identity: Unfurl OrgID in pkg/services to allow using identity.Requester interface (#76113)
Unfurl OrgID in pkg/services to allow using identity.Requester interface
This commit is contained in:
@ -118,7 +118,7 @@ func Auth(options *AuthOptions) web.Handler {
|
|||||||
if !forceLogin {
|
if !forceLogin {
|
||||||
orgIDValue := c.Req.URL.Query().Get("orgId")
|
orgIDValue := c.Req.URL.Query().Get("orgId")
|
||||||
orgID, err := strconv.ParseInt(orgIDValue, 10, 64)
|
orgID, err := strconv.ParseInt(orgIDValue, 10, 64)
|
||||||
if err == nil && orgID > 0 && orgID != c.OrgID {
|
if err == nil && orgID > 0 && orgID != c.SignedInUser.GetOrgID() {
|
||||||
forceLogin = true
|
forceLogin = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ func (s *CorrelationsService) createHandler(c *contextmodel.ReqContext) response
|
|||||||
return response.Error(http.StatusBadRequest, "bad request data", err)
|
return response.Error(http.StatusBadRequest, "bad request data", err)
|
||||||
}
|
}
|
||||||
cmd.SourceUID = web.Params(c.Req)[":uid"]
|
cmd.SourceUID = web.Params(c.Req)[":uid"]
|
||||||
cmd.OrgId = c.OrgID
|
cmd.OrgId = c.SignedInUser.GetOrgID()
|
||||||
|
|
||||||
correlation, err := s.CreateCorrelation(c.Req.Context(), cmd)
|
correlation, err := s.CreateCorrelation(c.Req.Context(), cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -91,7 +91,7 @@ func (s *CorrelationsService) deleteHandler(c *contextmodel.ReqContext) response
|
|||||||
cmd := DeleteCorrelationCommand{
|
cmd := DeleteCorrelationCommand{
|
||||||
UID: web.Params(c.Req)[":correlationUID"],
|
UID: web.Params(c.Req)[":correlationUID"],
|
||||||
SourceUID: web.Params(c.Req)[":uid"],
|
SourceUID: web.Params(c.Req)[":uid"],
|
||||||
OrgId: c.OrgID,
|
OrgId: c.SignedInUser.GetOrgID(),
|
||||||
}
|
}
|
||||||
|
|
||||||
err := s.DeleteCorrelation(c.Req.Context(), cmd)
|
err := s.DeleteCorrelation(c.Req.Context(), cmd)
|
||||||
@ -153,7 +153,7 @@ func (s *CorrelationsService) updateHandler(c *contextmodel.ReqContext) response
|
|||||||
|
|
||||||
cmd.UID = web.Params(c.Req)[":correlationUID"]
|
cmd.UID = web.Params(c.Req)[":correlationUID"]
|
||||||
cmd.SourceUID = web.Params(c.Req)[":uid"]
|
cmd.SourceUID = web.Params(c.Req)[":uid"]
|
||||||
cmd.OrgId = c.OrgID
|
cmd.OrgId = c.SignedInUser.GetOrgID()
|
||||||
|
|
||||||
correlation, err := s.UpdateCorrelation(c.Req.Context(), cmd)
|
correlation, err := s.UpdateCorrelation(c.Req.Context(), cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -206,7 +206,7 @@ func (s *CorrelationsService) getCorrelationHandler(c *contextmodel.ReqContext)
|
|||||||
query := GetCorrelationQuery{
|
query := GetCorrelationQuery{
|
||||||
UID: web.Params(c.Req)[":correlationUID"],
|
UID: web.Params(c.Req)[":correlationUID"],
|
||||||
SourceUID: web.Params(c.Req)[":uid"],
|
SourceUID: web.Params(c.Req)[":uid"],
|
||||||
OrgId: c.OrgID,
|
OrgId: c.SignedInUser.GetOrgID(),
|
||||||
}
|
}
|
||||||
|
|
||||||
correlation, err := s.getCorrelation(c.Req.Context(), query)
|
correlation, err := s.getCorrelation(c.Req.Context(), query)
|
||||||
@ -252,7 +252,7 @@ type GetCorrelationResponse struct {
|
|||||||
func (s *CorrelationsService) getCorrelationsBySourceUIDHandler(c *contextmodel.ReqContext) response.Response {
|
func (s *CorrelationsService) getCorrelationsBySourceUIDHandler(c *contextmodel.ReqContext) response.Response {
|
||||||
query := GetCorrelationsBySourceUIDQuery{
|
query := GetCorrelationsBySourceUIDQuery{
|
||||||
SourceUID: web.Params(c.Req)[":uid"],
|
SourceUID: web.Params(c.Req)[":uid"],
|
||||||
OrgId: c.OrgID,
|
OrgId: c.SignedInUser.GetOrgID(),
|
||||||
}
|
}
|
||||||
|
|
||||||
correlations, err := s.getCorrelationsBySourceUID(c.Req.Context(), query)
|
correlations, err := s.getCorrelationsBySourceUID(c.Req.Context(), query)
|
||||||
@ -308,7 +308,7 @@ func (s *CorrelationsService) getCorrelationsHandler(c *contextmodel.ReqContext)
|
|||||||
sourceUIDs := c.QueryStrings("sourceUID")
|
sourceUIDs := c.QueryStrings("sourceUID")
|
||||||
|
|
||||||
query := GetCorrelationsQuery{
|
query := GetCorrelationsQuery{
|
||||||
OrgId: c.OrgID,
|
OrgId: c.SignedInUser.GetOrgID(),
|
||||||
Limit: limit,
|
Limit: limit,
|
||||||
Page: page,
|
Page: page,
|
||||||
SourceUIDs: sourceUIDs,
|
SourceUIDs: sourceUIDs,
|
||||||
|
@ -49,7 +49,7 @@ func (l *LibraryElementService) createHandler(c *contextmodel.ReqContext) respon
|
|||||||
if *cmd.FolderUID == "" {
|
if *cmd.FolderUID == "" {
|
||||||
cmd.FolderID = 0
|
cmd.FolderID = 0
|
||||||
} else {
|
} else {
|
||||||
folder, err := l.folderService.Get(c.Req.Context(), &folder.GetFolderQuery{OrgID: c.OrgID, UID: cmd.FolderUID, SignedInUser: c.SignedInUser})
|
folder, err := l.folderService.Get(c.Req.Context(), &folder.GetFolderQuery{OrgID: c.SignedInUser.GetOrgID(), UID: cmd.FolderUID, SignedInUser: c.SignedInUser})
|
||||||
if err != nil || folder == nil {
|
if err != nil || folder == nil {
|
||||||
return response.ErrOrFallback(http.StatusBadRequest, "failed to get folder", err)
|
return response.ErrOrFallback(http.StatusBadRequest, "failed to get folder", err)
|
||||||
}
|
}
|
||||||
@ -62,7 +62,7 @@ func (l *LibraryElementService) createHandler(c *contextmodel.ReqContext) respon
|
|||||||
}
|
}
|
||||||
|
|
||||||
if element.FolderID != 0 {
|
if element.FolderID != 0 {
|
||||||
folder, err := l.folderService.Get(c.Req.Context(), &folder.GetFolderQuery{OrgID: c.OrgID, ID: &element.FolderID, SignedInUser: c.SignedInUser})
|
folder, err := l.folderService.Get(c.Req.Context(), &folder.GetFolderQuery{OrgID: c.SignedInUser.GetOrgID(), ID: &element.FolderID, SignedInUser: c.SignedInUser})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return response.ErrOrFallback(http.StatusInternalServerError, "failed to get folder", err)
|
return response.ErrOrFallback(http.StatusInternalServerError, "failed to get folder", err)
|
||||||
}
|
}
|
||||||
@ -181,7 +181,7 @@ func (l *LibraryElementService) patchHandler(c *contextmodel.ReqContext) respons
|
|||||||
if *cmd.FolderUID == "" {
|
if *cmd.FolderUID == "" {
|
||||||
cmd.FolderID = 0
|
cmd.FolderID = 0
|
||||||
} else {
|
} else {
|
||||||
folder, err := l.folderService.Get(c.Req.Context(), &folder.GetFolderQuery{OrgID: c.OrgID, UID: cmd.FolderUID, SignedInUser: c.SignedInUser})
|
folder, err := l.folderService.Get(c.Req.Context(), &folder.GetFolderQuery{OrgID: c.SignedInUser.GetOrgID(), UID: cmd.FolderUID, SignedInUser: c.SignedInUser})
|
||||||
if err != nil || folder == nil {
|
if err != nil || folder == nil {
|
||||||
return response.Error(http.StatusBadRequest, "failed to get folder", err)
|
return response.Error(http.StatusBadRequest, "failed to get folder", err)
|
||||||
}
|
}
|
||||||
@ -195,7 +195,7 @@ func (l *LibraryElementService) patchHandler(c *contextmodel.ReqContext) respons
|
|||||||
}
|
}
|
||||||
|
|
||||||
if element.FolderID != 0 {
|
if element.FolderID != 0 {
|
||||||
folder, err := l.folderService.Get(c.Req.Context(), &folder.GetFolderQuery{OrgID: c.OrgID, ID: &element.FolderID, SignedInUser: c.SignedInUser})
|
folder, err := l.folderService.Get(c.Req.Context(), &folder.GetFolderQuery{OrgID: c.SignedInUser.GetOrgID(), ID: &element.FolderID, SignedInUser: c.SignedInUser})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return response.Error(http.StatusInternalServerError, "failed to get folder", err)
|
return response.Error(http.StatusInternalServerError, "failed to get folder", err)
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ func (s *ServiceImpl) getAdminNode(c *contextmodel.ReqContext) (*navtree.NavLink
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
disabled, err := s.apiKeyService.IsDisabled(c.Req.Context(), c.OrgID)
|
disabled, err := s.apiKeyService.IsDisabled(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ func (s *ServiceImpl) addAppLinks(treeRoot *navtree.NavTreeRoot, c *contextmodel
|
|||||||
hasAccess := ac.HasAccess(s.accessControl, c)
|
hasAccess := ac.HasAccess(s.accessControl, c)
|
||||||
appLinks := []*navtree.NavLink{}
|
appLinks := []*navtree.NavLink{}
|
||||||
|
|
||||||
pss, err := s.pluginSettings.GetPluginSettings(c.Req.Context(), &pluginsettings.GetArgs{OrgID: c.OrgID})
|
pss, err := s.pluginSettings.GetPluginSettings(c.Req.Context(), &pluginsettings.GetArgs{OrgID: c.SignedInUser.GetOrgID()})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ func (s *ServiceImpl) GetNavTree(c *contextmodel.ReqContext, prefs *pref.Prefere
|
|||||||
treeRoot.AddSection(s.getProfileNode(c))
|
treeRoot.AddSection(s.getProfileNode(c))
|
||||||
}
|
}
|
||||||
|
|
||||||
_, uaIsDisabledForOrg := s.cfg.UnifiedAlerting.DisabledOrgs[c.OrgID]
|
_, uaIsDisabledForOrg := s.cfg.UnifiedAlerting.DisabledOrgs[c.SignedInUser.GetOrgID()]
|
||||||
uaVisibleForOrg := s.cfg.UnifiedAlerting.IsEnabled() && !uaIsDisabledForOrg
|
uaVisibleForOrg := s.cfg.UnifiedAlerting.IsEnabled() && !uaIsDisabledForOrg
|
||||||
|
|
||||||
if setting.AlertingEnabled != nil && *setting.AlertingEnabled {
|
if setting.AlertingEnabled != nil && *setting.AlertingEnabled {
|
||||||
@ -294,7 +294,7 @@ func (s *ServiceImpl) buildStarredItemsNavLinks(c *contextmodel.ReqContext) ([]*
|
|||||||
for id := range starredDashboardResult.UserStars {
|
for id := range starredDashboardResult.UserStars {
|
||||||
ids = append(ids, id)
|
ids = append(ids, id)
|
||||||
}
|
}
|
||||||
starredDashboards, err := s.dashboardService.GetDashboards(c.Req.Context(), &dashboards.GetDashboardsQuery{DashboardIDs: ids, OrgID: c.OrgID})
|
starredDashboards, err := s.dashboardService.GetDashboards(c.Req.Context(), &dashboards.GetDashboardsQuery{DashboardIDs: ids, OrgID: c.SignedInUser.GetOrgID()})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ func (e UnknownReceiverError) Error() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RouteGetAMStatus(c *contextmodel.ReqContext) response.Response {
|
func (srv AlertmanagerSrv) RouteGetAMStatus(c *contextmodel.ReqContext) response.Response {
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
@ -58,7 +58,7 @@ func (srv AlertmanagerSrv) RouteCreateSilence(c *contextmodel.ReqContext, postab
|
|||||||
return ErrResp(http.StatusBadRequest, err, "silence failed validation")
|
return ErrResp(http.StatusBadRequest, err, "silence failed validation")
|
||||||
}
|
}
|
||||||
|
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
@ -93,7 +93,7 @@ func (srv AlertmanagerSrv) RouteCreateSilence(c *contextmodel.ReqContext, postab
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RouteDeleteAlertingConfig(c *contextmodel.ReqContext) response.Response {
|
func (srv AlertmanagerSrv) RouteDeleteAlertingConfig(c *contextmodel.ReqContext) response.Response {
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
@ -107,7 +107,7 @@ func (srv AlertmanagerSrv) RouteDeleteAlertingConfig(c *contextmodel.ReqContext)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RouteDeleteSilence(c *contextmodel.ReqContext, silenceID string) response.Response {
|
func (srv AlertmanagerSrv) RouteDeleteSilence(c *contextmodel.ReqContext, silenceID string) response.Response {
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
@ -122,7 +122,7 @@ func (srv AlertmanagerSrv) RouteDeleteSilence(c *contextmodel.ReqContext, silenc
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RouteGetAlertingConfig(c *contextmodel.ReqContext) response.Response {
|
func (srv AlertmanagerSrv) RouteGetAlertingConfig(c *contextmodel.ReqContext) response.Response {
|
||||||
config, err := srv.mam.GetAlertmanagerConfiguration(c.Req.Context(), c.OrgID)
|
config, err := srv.mam.GetAlertmanagerConfiguration(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, store.ErrNoAlertmanagerConfiguration) {
|
if errors.Is(err, store.ErrNoAlertmanagerConfiguration) {
|
||||||
return ErrResp(http.StatusNotFound, err, "")
|
return ErrResp(http.StatusNotFound, err, "")
|
||||||
@ -134,7 +134,7 @@ func (srv AlertmanagerSrv) RouteGetAlertingConfig(c *contextmodel.ReqContext) re
|
|||||||
|
|
||||||
func (srv AlertmanagerSrv) RouteGetAlertingConfigHistory(c *contextmodel.ReqContext) response.Response {
|
func (srv AlertmanagerSrv) RouteGetAlertingConfigHistory(c *contextmodel.ReqContext) response.Response {
|
||||||
limit := c.QueryInt("limit")
|
limit := c.QueryInt("limit")
|
||||||
configs, err := srv.mam.GetAppliedAlertmanagerConfigurations(c.Req.Context(), c.OrgID, limit)
|
configs, err := srv.mam.GetAppliedAlertmanagerConfigurations(c.Req.Context(), c.SignedInUser.GetOrgID(), limit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, err.Error())
|
return ErrResp(http.StatusInternalServerError, err, err.Error())
|
||||||
}
|
}
|
||||||
@ -143,7 +143,7 @@ func (srv AlertmanagerSrv) RouteGetAlertingConfigHistory(c *contextmodel.ReqCont
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RouteGetAMAlertGroups(c *contextmodel.ReqContext) response.Response {
|
func (srv AlertmanagerSrv) RouteGetAMAlertGroups(c *contextmodel.ReqContext) response.Response {
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
@ -167,7 +167,7 @@ func (srv AlertmanagerSrv) RouteGetAMAlertGroups(c *contextmodel.ReqContext) res
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RouteGetAMAlerts(c *contextmodel.ReqContext) response.Response {
|
func (srv AlertmanagerSrv) RouteGetAMAlerts(c *contextmodel.ReqContext) response.Response {
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
@ -194,7 +194,7 @@ func (srv AlertmanagerSrv) RouteGetAMAlerts(c *contextmodel.ReqContext) response
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RouteGetSilence(c *contextmodel.ReqContext, silenceID string) response.Response {
|
func (srv AlertmanagerSrv) RouteGetSilence(c *contextmodel.ReqContext, silenceID string) response.Response {
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
@ -211,7 +211,7 @@ func (srv AlertmanagerSrv) RouteGetSilence(c *contextmodel.ReqContext, silenceID
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RouteGetSilences(c *contextmodel.ReqContext) response.Response {
|
func (srv AlertmanagerSrv) RouteGetSilences(c *contextmodel.ReqContext) response.Response {
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
@ -233,7 +233,7 @@ func (srv AlertmanagerSrv) RoutePostGrafanaAlertingConfigHistoryActivate(c *cont
|
|||||||
return ErrResp(http.StatusBadRequest, err, "failed to parse config id")
|
return ErrResp(http.StatusBadRequest, err, "failed to parse config id")
|
||||||
}
|
}
|
||||||
|
|
||||||
err = srv.mam.ActivateHistoricalConfiguration(c.Req.Context(), c.OrgID, confId)
|
err = srv.mam.ActivateHistoricalConfiguration(c.Req.Context(), c.SignedInUser.GetOrgID(), confId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
var unknownReceiverError notifier.UnknownReceiverError
|
var unknownReceiverError notifier.UnknownReceiverError
|
||||||
if errors.As(err, &unknownReceiverError) {
|
if errors.As(err, &unknownReceiverError) {
|
||||||
@ -260,7 +260,7 @@ func (srv AlertmanagerSrv) RoutePostGrafanaAlertingConfigHistoryActivate(c *cont
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RoutePostAlertingConfig(c *contextmodel.ReqContext, body apimodels.PostableUserConfig) response.Response {
|
func (srv AlertmanagerSrv) RoutePostAlertingConfig(c *contextmodel.ReqContext, body apimodels.PostableUserConfig) response.Response {
|
||||||
currentConfig, err := srv.mam.GetAlertmanagerConfiguration(c.Req.Context(), c.OrgID)
|
currentConfig, err := srv.mam.GetAlertmanagerConfiguration(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
// If a config is present and valid we proceed with the guard, otherwise we
|
// If a config is present and valid we proceed with the guard, otherwise we
|
||||||
// just bypass the guard which is okay as we are anyway in an invalid state.
|
// just bypass the guard which is okay as we are anyway in an invalid state.
|
||||||
if err == nil {
|
if err == nil {
|
||||||
@ -268,7 +268,7 @@ func (srv AlertmanagerSrv) RoutePostAlertingConfig(c *contextmodel.ReqContext, b
|
|||||||
return ErrResp(http.StatusBadRequest, err, "")
|
return ErrResp(http.StatusBadRequest, err, "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = srv.mam.ApplyAlertmanagerConfiguration(c.Req.Context(), c.OrgID, body)
|
err = srv.mam.ApplyAlertmanagerConfiguration(c.Req.Context(), c.SignedInUser.GetOrgID(), body)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return response.JSON(http.StatusAccepted, util.DynMap{"message": "configuration created"})
|
return response.JSON(http.StatusAccepted, util.DynMap{"message": "configuration created"})
|
||||||
}
|
}
|
||||||
@ -291,7 +291,7 @@ func (srv AlertmanagerSrv) RoutePostAlertingConfig(c *contextmodel.ReqContext, b
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RouteGetReceivers(c *contextmodel.ReqContext) response.Response {
|
func (srv AlertmanagerSrv) RouteGetReceivers(c *contextmodel.ReqContext) response.Response {
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
@ -301,7 +301,7 @@ func (srv AlertmanagerSrv) RouteGetReceivers(c *contextmodel.ReqContext) respons
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RoutePostTestReceivers(c *contextmodel.ReqContext, body apimodels.TestReceiversConfigBodyParams) response.Response {
|
func (srv AlertmanagerSrv) RoutePostTestReceivers(c *contextmodel.ReqContext, body apimodels.TestReceiversConfigBodyParams) response.Response {
|
||||||
if err := srv.crypto.ProcessSecureSettings(c.Req.Context(), c.OrgID, body.Receivers); err != nil {
|
if err := srv.crypto.ProcessSecureSettings(c.Req.Context(), c.SignedInUser.GetOrgID(), body.Receivers); err != nil {
|
||||||
var unknownReceiverError UnknownReceiverError
|
var unknownReceiverError UnknownReceiverError
|
||||||
if errors.As(err, &unknownReceiverError) {
|
if errors.As(err, &unknownReceiverError) {
|
||||||
return ErrResp(http.StatusBadRequest, err, "")
|
return ErrResp(http.StatusBadRequest, err, "")
|
||||||
@ -319,7 +319,7 @@ func (srv AlertmanagerSrv) RoutePostTestReceivers(c *contextmodel.ReqContext, bo
|
|||||||
}
|
}
|
||||||
defer cancelFunc()
|
defer cancelFunc()
|
||||||
|
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
@ -336,7 +336,7 @@ func (srv AlertmanagerSrv) RoutePostTestReceivers(c *contextmodel.ReqContext, bo
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv AlertmanagerSrv) RoutePostTestTemplates(c *contextmodel.ReqContext, body apimodels.TestTemplatesConfigBodyParams) response.Response {
|
func (srv AlertmanagerSrv) RoutePostTestTemplates(c *contextmodel.ReqContext, body apimodels.TestTemplatesConfigBodyParams) response.Response {
|
||||||
am, errResp := srv.AlertmanagerFor(c.OrgID)
|
am, errResp := srv.AlertmanagerFor(c.SignedInUser.GetOrgID())
|
||||||
if errResp != nil {
|
if errResp != nil {
|
||||||
return errResp
|
return errResp
|
||||||
}
|
}
|
||||||
|
@ -27,8 +27,8 @@ type ConfigSrv struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv ConfigSrv) RouteGetAlertmanagers(c *contextmodel.ReqContext) response.Response {
|
func (srv ConfigSrv) RouteGetAlertmanagers(c *contextmodel.ReqContext) response.Response {
|
||||||
urls := srv.alertmanagerProvider.AlertmanagersFor(c.OrgID)
|
urls := srv.alertmanagerProvider.AlertmanagersFor(c.SignedInUser.GetOrgID())
|
||||||
droppedURLs := srv.alertmanagerProvider.DroppedAlertmanagersFor(c.OrgID)
|
droppedURLs := srv.alertmanagerProvider.DroppedAlertmanagersFor(c.SignedInUser.GetOrgID())
|
||||||
ams := v1.AlertManagersResult{Active: make([]v1.AlertManager, len(urls)), Dropped: make([]v1.AlertManager, len(droppedURLs))}
|
ams := v1.AlertManagersResult{Active: make([]v1.AlertManager, len(urls)), Dropped: make([]v1.AlertManager, len(droppedURLs))}
|
||||||
for i, url := range urls {
|
for i, url := range urls {
|
||||||
ams.Active[i].URL = url.String()
|
ams.Active[i].URL = url.String()
|
||||||
@ -48,7 +48,7 @@ func (srv ConfigSrv) RouteGetNGalertConfig(c *contextmodel.ReqContext) response.
|
|||||||
return accessForbiddenResp()
|
return accessForbiddenResp()
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg, err := srv.store.GetAdminConfiguration(c.OrgID)
|
cfg, err := srv.store.GetAdminConfiguration(c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, store.ErrNoAdminConfiguration) {
|
if errors.Is(err, store.ErrNoAdminConfiguration) {
|
||||||
return ErrResp(http.StatusNotFound, err, "")
|
return ErrResp(http.StatusNotFound, err, "")
|
||||||
@ -75,7 +75,7 @@ func (srv ConfigSrv) RoutePostNGalertConfig(c *contextmodel.ReqContext, body api
|
|||||||
return response.Error(400, "Invalid alertmanager choice specified", err)
|
return response.Error(400, "Invalid alertmanager choice specified", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
externalAlertmanagers, err := srv.externalAlertmanagers(c.Req.Context(), c.OrgID)
|
externalAlertmanagers, err := srv.externalAlertmanagers(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return response.Error(500, "Couldn't fetch the external Alertmanagers from datasources", err)
|
return response.Error(500, "Couldn't fetch the external Alertmanagers from datasources", err)
|
||||||
}
|
}
|
||||||
@ -86,7 +86,7 @@ func (srv ConfigSrv) RoutePostNGalertConfig(c *contextmodel.ReqContext, body api
|
|||||||
|
|
||||||
cfg := &ngmodels.AdminConfiguration{
|
cfg := &ngmodels.AdminConfiguration{
|
||||||
SendAlertsTo: sendAlertsTo,
|
SendAlertsTo: sendAlertsTo,
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd := store.UpdateAdminConfigurationCmd{AdminConfiguration: cfg}
|
cmd := store.UpdateAdminConfigurationCmd{AdminConfiguration: cfg}
|
||||||
@ -104,7 +104,7 @@ func (srv ConfigSrv) RouteDeleteNGalertConfig(c *contextmodel.ReqContext) respon
|
|||||||
return accessForbiddenResp()
|
return accessForbiddenResp()
|
||||||
}
|
}
|
||||||
|
|
||||||
err := srv.store.DeleteAdminConfiguration(c.OrgID)
|
err := srv.store.DeleteAdminConfiguration(c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
srv.log.Error("Unable to delete configuration", "error", err)
|
srv.log.Error("Unable to delete configuration", "error", err)
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
@ -138,7 +138,7 @@ func (srv ConfigSrv) externalAlertmanagers(ctx context.Context, orgID int64) ([]
|
|||||||
func (srv ConfigSrv) RouteGetAlertingStatus(c *contextmodel.ReqContext) response.Response {
|
func (srv ConfigSrv) RouteGetAlertingStatus(c *contextmodel.ReqContext) response.Response {
|
||||||
sendsAlertsTo := ngmodels.InternalAlertmanager
|
sendsAlertsTo := ngmodels.InternalAlertmanager
|
||||||
|
|
||||||
cfg, err := srv.store.GetAdminConfiguration(c.OrgID)
|
cfg, err := srv.store.GetAdminConfiguration(c.SignedInUser.GetOrgID())
|
||||||
if err != nil && !errors.Is(err, store.ErrNoAdminConfiguration) {
|
if err != nil && !errors.Is(err, store.ErrNoAdminConfiguration) {
|
||||||
msg := "failed to fetch configuration from the database"
|
msg := "failed to fetch configuration from the database"
|
||||||
srv.log.Error(msg, "error", err)
|
srv.log.Error(msg, "error", err)
|
||||||
@ -149,7 +149,7 @@ func (srv ConfigSrv) RouteGetAlertingStatus(c *contextmodel.ReqContext) response
|
|||||||
}
|
}
|
||||||
|
|
||||||
// handle errors
|
// handle errors
|
||||||
externalAlertManagers, err := srv.externalAlertmanagers(c.Req.Context(), c.OrgID)
|
externalAlertManagers, err := srv.externalAlertmanagers(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ func (srv PrometheusSrv) RouteGetAlertStatuses(c *contextmodel.ReqContext) respo
|
|||||||
labelOptions = append(labelOptions, ngmodels.WithoutInternalLabels())
|
labelOptions = append(labelOptions, ngmodels.WithoutInternalLabels())
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, alertState := range srv.manager.GetAll(c.OrgID) {
|
for _, alertState := range srv.manager.GetAll(c.SignedInUser.GetOrgID()) {
|
||||||
startsAt := alertState.StartsAt
|
startsAt := alertState.StartsAt
|
||||||
valString := ""
|
valString := ""
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ func (srv PrometheusSrv) RouteGetRuleStatuses(c *contextmodel.ReqContext) respon
|
|||||||
labelOptions = append(labelOptions, ngmodels.WithoutInternalLabels())
|
labelOptions = append(labelOptions, ngmodels.WithoutInternalLabels())
|
||||||
}
|
}
|
||||||
|
|
||||||
namespaceMap, err := srv.store.GetUserVisibleNamespaces(c.Req.Context(), c.OrgID, c.SignedInUser)
|
namespaceMap, err := srv.store.GetUserVisibleNamespaces(c.Req.Context(), c.SignedInUser.GetOrgID(), c.SignedInUser)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "failed to get namespaces visible to the user")
|
return ErrResp(http.StatusInternalServerError, err, "failed to get namespaces visible to the user")
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ type AlertRuleService interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteGetPolicyTree(c *contextmodel.ReqContext) response.Response {
|
func (srv *ProvisioningSrv) RouteGetPolicyTree(c *contextmodel.ReqContext) response.Response {
|
||||||
policies, err := srv.policies.GetPolicyTree(c.Req.Context(), c.OrgID)
|
policies, err := srv.policies.GetPolicyTree(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if errors.Is(err, store.ErrNoAlertmanagerConfiguration) {
|
if errors.Is(err, store.ErrNoAlertmanagerConfiguration) {
|
||||||
return ErrResp(http.StatusNotFound, err, "")
|
return ErrResp(http.StatusNotFound, err, "")
|
||||||
}
|
}
|
||||||
@ -82,7 +82,7 @@ func (srv *ProvisioningSrv) RouteGetPolicyTree(c *contextmodel.ReqContext) respo
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteGetPolicyTreeExport(c *contextmodel.ReqContext) response.Response {
|
func (srv *ProvisioningSrv) RouteGetPolicyTreeExport(c *contextmodel.ReqContext) response.Response {
|
||||||
policies, err := srv.policies.GetPolicyTree(c.Req.Context(), c.OrgID)
|
policies, err := srv.policies.GetPolicyTree(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, store.ErrNoAlertmanagerConfiguration) {
|
if errors.Is(err, store.ErrNoAlertmanagerConfiguration) {
|
||||||
return ErrResp(http.StatusNotFound, err, "")
|
return ErrResp(http.StatusNotFound, err, "")
|
||||||
@ -90,7 +90,7 @@ func (srv *ProvisioningSrv) RouteGetPolicyTreeExport(c *contextmodel.ReqContext)
|
|||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
e, err := AlertingFileExportFromRoute(c.OrgID, policies)
|
e, err := AlertingFileExportFromRoute(c.SignedInUser.GetOrgID(), policies)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "failed to create alerting file export")
|
return ErrResp(http.StatusInternalServerError, err, "failed to create alerting file export")
|
||||||
}
|
}
|
||||||
@ -100,7 +100,7 @@ func (srv *ProvisioningSrv) RouteGetPolicyTreeExport(c *contextmodel.ReqContext)
|
|||||||
|
|
||||||
func (srv *ProvisioningSrv) RoutePutPolicyTree(c *contextmodel.ReqContext, tree definitions.Route) response.Response {
|
func (srv *ProvisioningSrv) RoutePutPolicyTree(c *contextmodel.ReqContext, tree definitions.Route) response.Response {
|
||||||
provenance := determineProvenance(c)
|
provenance := determineProvenance(c)
|
||||||
err := srv.policies.UpdatePolicyTree(c.Req.Context(), c.OrgID, tree, alerting_models.Provenance(provenance))
|
err := srv.policies.UpdatePolicyTree(c.Req.Context(), c.SignedInUser.GetOrgID(), tree, alerting_models.Provenance(provenance))
|
||||||
if errors.Is(err, store.ErrNoAlertmanagerConfiguration) {
|
if errors.Is(err, store.ErrNoAlertmanagerConfiguration) {
|
||||||
return ErrResp(http.StatusNotFound, err, "")
|
return ErrResp(http.StatusNotFound, err, "")
|
||||||
}
|
}
|
||||||
@ -115,7 +115,7 @@ func (srv *ProvisioningSrv) RoutePutPolicyTree(c *contextmodel.ReqContext, tree
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteResetPolicyTree(c *contextmodel.ReqContext) response.Response {
|
func (srv *ProvisioningSrv) RouteResetPolicyTree(c *contextmodel.ReqContext) response.Response {
|
||||||
tree, err := srv.policies.ResetPolicyTree(c.Req.Context(), c.OrgID)
|
tree, err := srv.policies.ResetPolicyTree(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
@ -125,7 +125,7 @@ func (srv *ProvisioningSrv) RouteResetPolicyTree(c *contextmodel.ReqContext) res
|
|||||||
func (srv *ProvisioningSrv) RouteGetContactPoints(c *contextmodel.ReqContext) response.Response {
|
func (srv *ProvisioningSrv) RouteGetContactPoints(c *contextmodel.ReqContext) response.Response {
|
||||||
q := provisioning.ContactPointQuery{
|
q := provisioning.ContactPointQuery{
|
||||||
Name: c.Query("name"),
|
Name: c.Query("name"),
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
}
|
}
|
||||||
cps, err := srv.contactPointService.GetContactPoints(c.Req.Context(), q, nil)
|
cps, err := srv.contactPointService.GetContactPoints(c.Req.Context(), q, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -140,7 +140,7 @@ func (srv *ProvisioningSrv) RouteGetContactPoints(c *contextmodel.ReqContext) re
|
|||||||
func (srv *ProvisioningSrv) RouteGetContactPointsExport(c *contextmodel.ReqContext) response.Response {
|
func (srv *ProvisioningSrv) RouteGetContactPointsExport(c *contextmodel.ReqContext) response.Response {
|
||||||
q := provisioning.ContactPointQuery{
|
q := provisioning.ContactPointQuery{
|
||||||
Name: c.Query("name"),
|
Name: c.Query("name"),
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
Decrypt: c.QueryBoolWithDefault("decrypt", false),
|
Decrypt: c.QueryBoolWithDefault("decrypt", false),
|
||||||
}
|
}
|
||||||
cps, err := srv.contactPointService.GetContactPoints(c.Req.Context(), q, c.SignedInUser)
|
cps, err := srv.contactPointService.GetContactPoints(c.Req.Context(), q, c.SignedInUser)
|
||||||
@ -151,7 +151,7 @@ func (srv *ProvisioningSrv) RouteGetContactPointsExport(c *contextmodel.ReqConte
|
|||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
e, err := AlertingFileExportFromEmbeddedContactPoints(c.OrgID, cps)
|
e, err := AlertingFileExportFromEmbeddedContactPoints(c.SignedInUser.GetOrgID(), cps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "failed to create alerting file export")
|
return ErrResp(http.StatusInternalServerError, err, "failed to create alerting file export")
|
||||||
}
|
}
|
||||||
@ -161,7 +161,7 @@ func (srv *ProvisioningSrv) RouteGetContactPointsExport(c *contextmodel.ReqConte
|
|||||||
|
|
||||||
func (srv *ProvisioningSrv) RoutePostContactPoint(c *contextmodel.ReqContext, cp definitions.EmbeddedContactPoint) response.Response {
|
func (srv *ProvisioningSrv) RoutePostContactPoint(c *contextmodel.ReqContext, cp definitions.EmbeddedContactPoint) response.Response {
|
||||||
provenance := determineProvenance(c)
|
provenance := determineProvenance(c)
|
||||||
contactPoint, err := srv.contactPointService.CreateContactPoint(c.Req.Context(), c.OrgID, cp, alerting_models.Provenance(provenance))
|
contactPoint, err := srv.contactPointService.CreateContactPoint(c.Req.Context(), c.SignedInUser.GetOrgID(), cp, alerting_models.Provenance(provenance))
|
||||||
if errors.Is(err, provisioning.ErrValidation) {
|
if errors.Is(err, provisioning.ErrValidation) {
|
||||||
return ErrResp(http.StatusBadRequest, err, "")
|
return ErrResp(http.StatusBadRequest, err, "")
|
||||||
}
|
}
|
||||||
@ -174,7 +174,7 @@ func (srv *ProvisioningSrv) RoutePostContactPoint(c *contextmodel.ReqContext, cp
|
|||||||
func (srv *ProvisioningSrv) RoutePutContactPoint(c *contextmodel.ReqContext, cp definitions.EmbeddedContactPoint, UID string) response.Response {
|
func (srv *ProvisioningSrv) RoutePutContactPoint(c *contextmodel.ReqContext, cp definitions.EmbeddedContactPoint, UID string) response.Response {
|
||||||
cp.UID = UID
|
cp.UID = UID
|
||||||
provenance := determineProvenance(c)
|
provenance := determineProvenance(c)
|
||||||
err := srv.contactPointService.UpdateContactPoint(c.Req.Context(), c.OrgID, cp, alerting_models.Provenance(provenance))
|
err := srv.contactPointService.UpdateContactPoint(c.Req.Context(), c.SignedInUser.GetOrgID(), cp, alerting_models.Provenance(provenance))
|
||||||
if errors.Is(err, provisioning.ErrValidation) {
|
if errors.Is(err, provisioning.ErrValidation) {
|
||||||
return ErrResp(http.StatusBadRequest, err, "")
|
return ErrResp(http.StatusBadRequest, err, "")
|
||||||
}
|
}
|
||||||
@ -188,7 +188,7 @@ func (srv *ProvisioningSrv) RoutePutContactPoint(c *contextmodel.ReqContext, cp
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteDeleteContactPoint(c *contextmodel.ReqContext, UID string) response.Response {
|
func (srv *ProvisioningSrv) RouteDeleteContactPoint(c *contextmodel.ReqContext, UID string) response.Response {
|
||||||
err := srv.contactPointService.DeleteContactPoint(c.Req.Context(), c.OrgID, UID)
|
err := srv.contactPointService.DeleteContactPoint(c.Req.Context(), c.SignedInUser.GetOrgID(), UID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
@ -196,7 +196,7 @@ func (srv *ProvisioningSrv) RouteDeleteContactPoint(c *contextmodel.ReqContext,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteGetTemplates(c *contextmodel.ReqContext) response.Response {
|
func (srv *ProvisioningSrv) RouteGetTemplates(c *contextmodel.ReqContext) response.Response {
|
||||||
templates, err := srv.templates.GetTemplates(c.Req.Context(), c.OrgID)
|
templates, err := srv.templates.GetTemplates(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
@ -208,7 +208,7 @@ func (srv *ProvisioningSrv) RouteGetTemplates(c *contextmodel.ReqContext) respon
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteGetTemplate(c *contextmodel.ReqContext, name string) response.Response {
|
func (srv *ProvisioningSrv) RouteGetTemplate(c *contextmodel.ReqContext, name string) response.Response {
|
||||||
templates, err := srv.templates.GetTemplates(c.Req.Context(), c.OrgID)
|
templates, err := srv.templates.GetTemplates(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
@ -224,7 +224,7 @@ func (srv *ProvisioningSrv) RoutePutTemplate(c *contextmodel.ReqContext, body de
|
|||||||
Template: body.Template,
|
Template: body.Template,
|
||||||
Provenance: determineProvenance(c),
|
Provenance: determineProvenance(c),
|
||||||
}
|
}
|
||||||
modified, err := srv.templates.SetTemplate(c.Req.Context(), c.OrgID, tmpl)
|
modified, err := srv.templates.SetTemplate(c.Req.Context(), c.SignedInUser.GetOrgID(), tmpl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, provisioning.ErrValidation) {
|
if errors.Is(err, provisioning.ErrValidation) {
|
||||||
return ErrResp(http.StatusBadRequest, err, "")
|
return ErrResp(http.StatusBadRequest, err, "")
|
||||||
@ -235,7 +235,7 @@ func (srv *ProvisioningSrv) RoutePutTemplate(c *contextmodel.ReqContext, body de
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteDeleteTemplate(c *contextmodel.ReqContext, name string) response.Response {
|
func (srv *ProvisioningSrv) RouteDeleteTemplate(c *contextmodel.ReqContext, name string) response.Response {
|
||||||
err := srv.templates.DeleteTemplate(c.Req.Context(), c.OrgID, name)
|
err := srv.templates.DeleteTemplate(c.Req.Context(), c.SignedInUser.GetOrgID(), name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
@ -243,7 +243,7 @@ func (srv *ProvisioningSrv) RouteDeleteTemplate(c *contextmodel.ReqContext, name
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteGetMuteTiming(c *contextmodel.ReqContext, name string) response.Response {
|
func (srv *ProvisioningSrv) RouteGetMuteTiming(c *contextmodel.ReqContext, name string) response.Response {
|
||||||
timings, err := srv.muteTimings.GetMuteTimings(c.Req.Context(), c.OrgID)
|
timings, err := srv.muteTimings.GetMuteTimings(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
@ -256,7 +256,7 @@ func (srv *ProvisioningSrv) RouteGetMuteTiming(c *contextmodel.ReqContext, name
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteGetMuteTimings(c *contextmodel.ReqContext) response.Response {
|
func (srv *ProvisioningSrv) RouteGetMuteTimings(c *contextmodel.ReqContext) response.Response {
|
||||||
timings, err := srv.muteTimings.GetMuteTimings(c.Req.Context(), c.OrgID)
|
timings, err := srv.muteTimings.GetMuteTimings(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
@ -265,7 +265,7 @@ func (srv *ProvisioningSrv) RouteGetMuteTimings(c *contextmodel.ReqContext) resp
|
|||||||
|
|
||||||
func (srv *ProvisioningSrv) RoutePostMuteTiming(c *contextmodel.ReqContext, mt definitions.MuteTimeInterval) response.Response {
|
func (srv *ProvisioningSrv) RoutePostMuteTiming(c *contextmodel.ReqContext, mt definitions.MuteTimeInterval) response.Response {
|
||||||
mt.Provenance = determineProvenance(c)
|
mt.Provenance = determineProvenance(c)
|
||||||
created, err := srv.muteTimings.CreateMuteTiming(c.Req.Context(), mt, c.OrgID)
|
created, err := srv.muteTimings.CreateMuteTiming(c.Req.Context(), mt, c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, provisioning.ErrValidation) {
|
if errors.Is(err, provisioning.ErrValidation) {
|
||||||
return ErrResp(http.StatusBadRequest, err, "")
|
return ErrResp(http.StatusBadRequest, err, "")
|
||||||
@ -278,7 +278,7 @@ func (srv *ProvisioningSrv) RoutePostMuteTiming(c *contextmodel.ReqContext, mt d
|
|||||||
func (srv *ProvisioningSrv) RoutePutMuteTiming(c *contextmodel.ReqContext, mt definitions.MuteTimeInterval, name string) response.Response {
|
func (srv *ProvisioningSrv) RoutePutMuteTiming(c *contextmodel.ReqContext, mt definitions.MuteTimeInterval, name string) response.Response {
|
||||||
mt.Name = name
|
mt.Name = name
|
||||||
mt.Provenance = determineProvenance(c)
|
mt.Provenance = determineProvenance(c)
|
||||||
updated, err := srv.muteTimings.UpdateMuteTiming(c.Req.Context(), mt, c.OrgID)
|
updated, err := srv.muteTimings.UpdateMuteTiming(c.Req.Context(), mt, c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, provisioning.ErrValidation) {
|
if errors.Is(err, provisioning.ErrValidation) {
|
||||||
return ErrResp(http.StatusBadRequest, err, "")
|
return ErrResp(http.StatusBadRequest, err, "")
|
||||||
@ -292,7 +292,7 @@ func (srv *ProvisioningSrv) RoutePutMuteTiming(c *contextmodel.ReqContext, mt de
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteDeleteMuteTiming(c *contextmodel.ReqContext, name string) response.Response {
|
func (srv *ProvisioningSrv) RouteDeleteMuteTiming(c *contextmodel.ReqContext, name string) response.Response {
|
||||||
err := srv.muteTimings.DeleteMuteTiming(c.Req.Context(), name, c.OrgID)
|
err := srv.muteTimings.DeleteMuteTiming(c.Req.Context(), name, c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
@ -300,7 +300,7 @@ func (srv *ProvisioningSrv) RouteDeleteMuteTiming(c *contextmodel.ReqContext, na
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteGetAlertRules(c *contextmodel.ReqContext) response.Response {
|
func (srv *ProvisioningSrv) RouteGetAlertRules(c *contextmodel.ReqContext) response.Response {
|
||||||
rules, err := srv.alertRules.GetAlertRules(c.Req.Context(), c.OrgID)
|
rules, err := srv.alertRules.GetAlertRules(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
@ -308,7 +308,7 @@ func (srv *ProvisioningSrv) RouteGetAlertRules(c *contextmodel.ReqContext) respo
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteRouteGetAlertRule(c *contextmodel.ReqContext, UID string) response.Response {
|
func (srv *ProvisioningSrv) RouteRouteGetAlertRule(c *contextmodel.ReqContext, UID string) response.Response {
|
||||||
rule, provenace, err := srv.alertRules.GetAlertRule(c.Req.Context(), c.OrgID, UID)
|
rule, provenace, err := srv.alertRules.GetAlertRule(c.Req.Context(), c.SignedInUser.GetOrgID(), UID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, alerting_models.ErrAlertRuleNotFound) {
|
if errors.Is(err, alerting_models.ErrAlertRuleNotFound) {
|
||||||
return response.Empty(http.StatusNotFound)
|
return response.Empty(http.StatusNotFound)
|
||||||
@ -320,7 +320,7 @@ func (srv *ProvisioningSrv) RouteRouteGetAlertRule(c *contextmodel.ReqContext, U
|
|||||||
|
|
||||||
func (srv *ProvisioningSrv) RoutePostAlertRule(c *contextmodel.ReqContext, ar definitions.ProvisionedAlertRule) response.Response {
|
func (srv *ProvisioningSrv) RoutePostAlertRule(c *contextmodel.ReqContext, ar definitions.ProvisionedAlertRule) response.Response {
|
||||||
upstreamModel, err := AlertRuleFromProvisionedAlertRule(ar)
|
upstreamModel, err := AlertRuleFromProvisionedAlertRule(ar)
|
||||||
upstreamModel.OrgID = c.OrgID
|
upstreamModel.OrgID = c.SignedInUser.GetOrgID()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusBadRequest, err, "")
|
return ErrResp(http.StatusBadRequest, err, "")
|
||||||
}
|
}
|
||||||
@ -348,7 +348,7 @@ func (srv *ProvisioningSrv) RoutePutAlertRule(c *contextmodel.ReqContext, ar def
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
ErrResp(http.StatusBadRequest, err, "")
|
ErrResp(http.StatusBadRequest, err, "")
|
||||||
}
|
}
|
||||||
updated.OrgID = c.OrgID
|
updated.OrgID = c.SignedInUser.GetOrgID()
|
||||||
updated.UID = UID
|
updated.UID = UID
|
||||||
provenance := determineProvenance(c)
|
provenance := determineProvenance(c)
|
||||||
updatedAlertRule, err := srv.alertRules.UpdateAlertRule(c.Req.Context(), updated, alerting_models.Provenance(provenance))
|
updatedAlertRule, err := srv.alertRules.UpdateAlertRule(c.Req.Context(), updated, alerting_models.Provenance(provenance))
|
||||||
@ -371,7 +371,7 @@ func (srv *ProvisioningSrv) RoutePutAlertRule(c *contextmodel.ReqContext, ar def
|
|||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteDeleteAlertRule(c *contextmodel.ReqContext, UID string) response.Response {
|
func (srv *ProvisioningSrv) RouteDeleteAlertRule(c *contextmodel.ReqContext, UID string) response.Response {
|
||||||
provenance := determineProvenance(c)
|
provenance := determineProvenance(c)
|
||||||
err := srv.alertRules.DeleteAlertRule(c.Req.Context(), c.OrgID, UID, alerting_models.Provenance(provenance))
|
err := srv.alertRules.DeleteAlertRule(c.Req.Context(), c.SignedInUser.GetOrgID(), UID, alerting_models.Provenance(provenance))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "")
|
return ErrResp(http.StatusInternalServerError, err, "")
|
||||||
}
|
}
|
||||||
@ -379,7 +379,7 @@ func (srv *ProvisioningSrv) RouteDeleteAlertRule(c *contextmodel.ReqContext, UID
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (srv *ProvisioningSrv) RouteGetAlertRuleGroup(c *contextmodel.ReqContext, folder string, group string) response.Response {
|
func (srv *ProvisioningSrv) RouteGetAlertRuleGroup(c *contextmodel.ReqContext, folder string, group string) response.Response {
|
||||||
g, err := srv.alertRules.GetRuleGroup(c.Req.Context(), c.OrgID, folder, group)
|
g, err := srv.alertRules.GetRuleGroup(c.Req.Context(), c.SignedInUser.GetOrgID(), folder, group)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, store.ErrAlertRuleGroupNotFound) {
|
if errors.Is(err, store.ErrAlertRuleGroupNotFound) {
|
||||||
return ErrResp(http.StatusNotFound, err, "")
|
return ErrResp(http.StatusNotFound, err, "")
|
||||||
@ -410,7 +410,7 @@ func (srv *ProvisioningSrv) RouteGetAlertRulesExport(c *contextmodel.ReqContext)
|
|||||||
return srv.RouteGetAlertRuleGroupExport(c, folderUIDs[0], group)
|
return srv.RouteGetAlertRuleGroupExport(c, folderUIDs[0], group)
|
||||||
}
|
}
|
||||||
|
|
||||||
groupsWithTitle, err := srv.alertRules.GetAlertGroupsWithFolderTitle(c.Req.Context(), c.OrgID, folderUIDs)
|
groupsWithTitle, err := srv.alertRules.GetAlertGroupsWithFolderTitle(c.Req.Context(), c.SignedInUser.GetOrgID(), folderUIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "failed to get alert rules")
|
return ErrResp(http.StatusInternalServerError, err, "failed to get alert rules")
|
||||||
}
|
}
|
||||||
@ -428,7 +428,7 @@ func (srv *ProvisioningSrv) RouteGetAlertRulesExport(c *contextmodel.ReqContext)
|
|||||||
|
|
||||||
// RouteGetAlertRuleGroupExport retrieves the given alert rule group in a format compatible with file provisioning.
|
// RouteGetAlertRuleGroupExport retrieves the given alert rule group in a format compatible with file provisioning.
|
||||||
func (srv *ProvisioningSrv) RouteGetAlertRuleGroupExport(c *contextmodel.ReqContext, folder string, group string) response.Response {
|
func (srv *ProvisioningSrv) RouteGetAlertRuleGroupExport(c *contextmodel.ReqContext, folder string, group string) response.Response {
|
||||||
g, err := srv.alertRules.GetAlertRuleGroupWithFolderTitle(c.Req.Context(), c.OrgID, folder, group)
|
g, err := srv.alertRules.GetAlertRuleGroupWithFolderTitle(c.Req.Context(), c.SignedInUser.GetOrgID(), folder, group)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, store.ErrAlertRuleGroupNotFound) {
|
if errors.Is(err, store.ErrAlertRuleGroupNotFound) {
|
||||||
return ErrResp(http.StatusNotFound, err, "")
|
return ErrResp(http.StatusNotFound, err, "")
|
||||||
@ -446,7 +446,7 @@ func (srv *ProvisioningSrv) RouteGetAlertRuleGroupExport(c *contextmodel.ReqCont
|
|||||||
|
|
||||||
// RouteGetAlertRuleExport retrieves the given alert rule in a format compatible with file provisioning.
|
// RouteGetAlertRuleExport retrieves the given alert rule in a format compatible with file provisioning.
|
||||||
func (srv *ProvisioningSrv) RouteGetAlertRuleExport(c *contextmodel.ReqContext, UID string) response.Response {
|
func (srv *ProvisioningSrv) RouteGetAlertRuleExport(c *contextmodel.ReqContext, UID string) response.Response {
|
||||||
rule, err := srv.alertRules.GetAlertRuleWithFolderTitle(c.Req.Context(), c.OrgID, UID)
|
rule, err := srv.alertRules.GetAlertRuleWithFolderTitle(c.Req.Context(), c.SignedInUser.GetOrgID(), UID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, alerting_models.ErrAlertRuleNotFound) {
|
if errors.Is(err, alerting_models.ErrAlertRuleNotFound) {
|
||||||
return ErrResp(http.StatusNotFound, err, "")
|
return ErrResp(http.StatusNotFound, err, "")
|
||||||
@ -472,7 +472,7 @@ func (srv *ProvisioningSrv) RoutePutAlertRuleGroup(c *contextmodel.ReqContext, a
|
|||||||
ErrResp(http.StatusBadRequest, err, "")
|
ErrResp(http.StatusBadRequest, err, "")
|
||||||
}
|
}
|
||||||
provenance := determineProvenance(c)
|
provenance := determineProvenance(c)
|
||||||
err = srv.alertRules.ReplaceRuleGroup(c.Req.Context(), c.OrgID, groupModel, c.UserID, alerting_models.Provenance(provenance))
|
err = srv.alertRules.ReplaceRuleGroup(c.Req.Context(), c.SignedInUser.GetOrgID(), groupModel, c.UserID, alerting_models.Provenance(provenance))
|
||||||
if errors.Is(err, alerting_models.ErrAlertRuleFailedValidation) {
|
if errors.Is(err, alerting_models.ErrAlertRuleFailedValidation) {
|
||||||
return ErrResp(http.StatusBadRequest, err, "")
|
return ErrResp(http.StatusBadRequest, err, "")
|
||||||
}
|
}
|
||||||
|
@ -77,7 +77,7 @@ func (srv RulerSrv) RouteDeleteAlertRules(c *contextmodel.ReqContext, namespaceT
|
|||||||
deletionCandidates := map[ngmodels.AlertRuleGroupKey]ngmodels.RulesGroup{}
|
deletionCandidates := map[ngmodels.AlertRuleGroupKey]ngmodels.RulesGroup{}
|
||||||
if group != "" {
|
if group != "" {
|
||||||
key := ngmodels.AlertRuleGroupKey{
|
key := ngmodels.AlertRuleGroupKey{
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
NamespaceUID: namespace.UID,
|
NamespaceUID: namespace.UID,
|
||||||
RuleGroup: group,
|
RuleGroup: group,
|
||||||
}
|
}
|
||||||
@ -173,7 +173,7 @@ func (srv RulerSrv) RouteGetRulesGroupConfig(c *contextmodel.ReqContext, namespa
|
|||||||
}
|
}
|
||||||
|
|
||||||
rules, err := srv.getAuthorizedRuleGroup(c.Req.Context(), c, ngmodels.AlertRuleGroupKey{
|
rules, err := srv.getAuthorizedRuleGroup(c.Req.Context(), c, ngmodels.AlertRuleGroupKey{
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
RuleGroup: ruleGroup,
|
RuleGroup: ruleGroup,
|
||||||
NamespaceUID: namespace.UID,
|
NamespaceUID: namespace.UID,
|
||||||
})
|
})
|
||||||
@ -194,7 +194,7 @@ func (srv RulerSrv) RouteGetRulesGroupConfig(c *contextmodel.ReqContext, namespa
|
|||||||
|
|
||||||
// RouteGetRulesConfig returns all alert rules that are available to the current user
|
// RouteGetRulesConfig returns all alert rules that are available to the current user
|
||||||
func (srv RulerSrv) RouteGetRulesConfig(c *contextmodel.ReqContext) response.Response {
|
func (srv RulerSrv) RouteGetRulesConfig(c *contextmodel.ReqContext) response.Response {
|
||||||
namespaceMap, err := srv.store.GetUserVisibleNamespaces(c.Req.Context(), c.OrgID, c.SignedInUser)
|
namespaceMap, err := srv.store.GetUserVisibleNamespaces(c.Req.Context(), c.SignedInUser.GetOrgID(), c.SignedInUser)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrResp(http.StatusInternalServerError, err, "failed to get namespaces visible to the user")
|
return ErrResp(http.StatusInternalServerError, err, "failed to get namespaces visible to the user")
|
||||||
}
|
}
|
||||||
@ -289,7 +289,7 @@ func (srv RulerSrv) updateAlertRulesInGroup(c *contextmodel.ReqContext, groupKey
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := verifyProvisionedRulesNotAffected(c.Req.Context(), srv.provenanceStore, c.OrgID, groupChanges); err != nil {
|
if err := verifyProvisionedRulesNotAffected(c.Req.Context(), srv.provenanceStore, c.SignedInUser.GetOrgID(), groupChanges); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -344,7 +344,7 @@ func (srv RulerSrv) updateAlertRulesInGroup(c *contextmodel.ReqContext, groupKey
|
|||||||
|
|
||||||
if len(finalChanges.New) > 0 {
|
if len(finalChanges.New) > 0 {
|
||||||
limitReached, err := srv.QuotaService.CheckQuotaReached(tranCtx, ngmodels.QuotaTargetSrv, "a.ScopeParameters{
|
limitReached, err := srv.QuotaService.CheckQuotaReached(tranCtx, ngmodels.QuotaTargetSrv, "a.ScopeParameters{
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
UserID: c.UserID,
|
UserID: c.UserID,
|
||||||
}) // alert rule is table name
|
}) // alert rule is table name
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -508,7 +508,7 @@ func (srv RulerSrv) getAuthorizedRuleByUid(ctx context.Context, c *contextmodel.
|
|||||||
hasAccess := accesscontrol.HasAccess(srv.ac, c)
|
hasAccess := accesscontrol.HasAccess(srv.ac, c)
|
||||||
q := ngmodels.GetAlertRulesGroupByRuleUIDQuery{
|
q := ngmodels.GetAlertRulesGroupByRuleUIDQuery{
|
||||||
UID: ruleUID,
|
UID: ruleUID,
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
}
|
}
|
||||||
var err error
|
var err error
|
||||||
rules, err := srv.store.GetAlertRulesGroupByRuleUID(ctx, &q)
|
rules, err := srv.store.GetAlertRulesGroupByRuleUID(ctx, &q)
|
||||||
@ -553,7 +553,7 @@ func (srv RulerSrv) getAuthorizedRuleGroup(ctx context.Context, c *contextmodel.
|
|||||||
func (srv RulerSrv) searchAuthorizedAlertRules(ctx context.Context, c *contextmodel.ReqContext, folderUIDs []string, dashboardUID string, panelID int64) (map[ngmodels.AlertRuleGroupKey]ngmodels.RulesGroup, int, error) {
|
func (srv RulerSrv) searchAuthorizedAlertRules(ctx context.Context, c *contextmodel.ReqContext, folderUIDs []string, dashboardUID string, panelID int64) (map[ngmodels.AlertRuleGroupKey]ngmodels.RulesGroup, int, error) {
|
||||||
hasAccess := accesscontrol.HasAccess(srv.ac, c)
|
hasAccess := accesscontrol.HasAccess(srv.ac, c)
|
||||||
query := ngmodels.ListAlertRulesQuery{
|
query := ngmodels.ListAlertRulesQuery{
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
NamespaceUIDs: folderUIDs,
|
NamespaceUIDs: folderUIDs,
|
||||||
DashboardUID: dashboardUID,
|
DashboardUID: dashboardUID,
|
||||||
PanelID: panelID,
|
PanelID: panelID,
|
||||||
|
@ -70,7 +70,7 @@ func (srv RulerSrv) ExportRules(c *contextmodel.ReqContext) response.Response {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
rulesGroup, err := srv.getRuleGroupWithFolderTitle(c, ngmodels.AlertRuleGroupKey{
|
rulesGroup, err := srv.getRuleGroupWithFolderTitle(c, ngmodels.AlertRuleGroupKey{
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
NamespaceUID: folderUIDs[0],
|
NamespaceUID: folderUIDs[0],
|
||||||
RuleGroup: group,
|
RuleGroup: group,
|
||||||
})
|
})
|
||||||
@ -132,12 +132,12 @@ func (srv RulerSrv) getRuleGroupWithFolderTitle(c *contextmodel.ReqContext, rule
|
|||||||
// getRulesWithFolderTitleInFolders gets list of folders to which user has access, and then calls searchAuthorizedAlertRules.
|
// getRulesWithFolderTitleInFolders gets list of folders to which user has access, and then calls searchAuthorizedAlertRules.
|
||||||
// If argument folderUIDs is not empty it intersects it with the list of folders available for user and then retrieves rules that are in those folders.
|
// If argument folderUIDs is not empty it intersects it with the list of folders available for user and then retrieves rules that are in those folders.
|
||||||
func (srv RulerSrv) getRulesWithFolderTitleInFolders(c *contextmodel.ReqContext, folderUIDs []string) ([]ngmodels.AlertRuleGroupWithFolderTitle, error) {
|
func (srv RulerSrv) getRulesWithFolderTitleInFolders(c *contextmodel.ReqContext, folderUIDs []string) ([]ngmodels.AlertRuleGroupWithFolderTitle, error) {
|
||||||
folders, err := srv.store.GetUserVisibleNamespaces(c.Req.Context(), c.OrgID, c.SignedInUser)
|
folders, err := srv.store.GetUserVisibleNamespaces(c.Req.Context(), c.SignedInUser.GetOrgID(), c.SignedInUser)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
query := ngmodels.ListAlertRulesQuery{
|
query := ngmodels.ListAlertRulesQuery{
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
NamespaceUIDs: nil,
|
NamespaceUIDs: nil,
|
||||||
}
|
}
|
||||||
if len(folderUIDs) > 0 {
|
if len(folderUIDs) > 0 {
|
||||||
|
@ -41,7 +41,7 @@ func (srv *HistorySrv) RouteQueryStateHistory(c *contextmodel.ReqContext) respon
|
|||||||
|
|
||||||
query := models.HistoryQuery{
|
query := models.HistoryQuery{
|
||||||
RuleUID: ruleUID,
|
RuleUID: ruleUID,
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
DashboardUID: dashUID,
|
DashboardUID: dashUID,
|
||||||
PanelID: panelID,
|
PanelID: panelID,
|
||||||
SignedInUser: c.SignedInUser,
|
SignedInUser: c.SignedInUser,
|
||||||
|
@ -10,9 +10,10 @@ import (
|
|||||||
|
|
||||||
"github.com/benbjohnson/clock"
|
"github.com/benbjohnson/clock"
|
||||||
"github.com/grafana/alerting/models"
|
"github.com/grafana/alerting/models"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
|
||||||
amv2 "github.com/prometheus/alertmanager/api/v2/models"
|
amv2 "github.com/prometheus/alertmanager/api/v2/models"
|
||||||
|
|
||||||
|
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/api/response"
|
"github.com/grafana/grafana/pkg/api/response"
|
||||||
"github.com/grafana/grafana/pkg/infra/log"
|
"github.com/grafana/grafana/pkg/infra/log"
|
||||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||||
@ -51,9 +52,9 @@ func (srv TestingApiSrv) RouteTestGrafanaRuleConfig(c *contextmodel.ReqContext,
|
|||||||
&body.Rule,
|
&body.Rule,
|
||||||
body.RuleGroup,
|
body.RuleGroup,
|
||||||
srv.cfg.BaseInterval,
|
srv.cfg.BaseInterval,
|
||||||
c.OrgID,
|
c.SignedInUser.GetOrgID(),
|
||||||
&folder.Folder{
|
&folder.Folder{
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
UID: body.NamespaceUID,
|
UID: body.NamespaceUID,
|
||||||
Title: body.NamespaceTitle,
|
Title: body.NamespaceTitle,
|
||||||
},
|
},
|
||||||
@ -226,7 +227,7 @@ func (srv TestingApiSrv) BacktestAlertRule(c *contextmodel.ReqContext, cmd apimo
|
|||||||
Title: cmd.Title,
|
Title: cmd.Title,
|
||||||
// prefix backtesting- is to distinguish between executions of regular rule and backtesting in logs (like expression engine, evaluator, state manager etc)
|
// prefix backtesting- is to distinguish between executions of regular rule and backtesting in logs (like expression engine, evaluator, state manager etc)
|
||||||
UID: "backtesting-" + util.GenerateShortUID(),
|
UID: "backtesting-" + util.GenerateShortUID(),
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
Condition: cmd.Condition,
|
Condition: cmd.Condition,
|
||||||
Data: queries,
|
Data: queries,
|
||||||
IntervalSeconds: intervalSeconds,
|
IntervalSeconds: intervalSeconds,
|
||||||
|
@ -101,7 +101,7 @@ func (api *Api) ListPublicDashboards(c *contextmodel.ReqContext) response.Respon
|
|||||||
}
|
}
|
||||||
|
|
||||||
resp, err := api.PublicDashboardService.FindAllWithPagination(c.Req.Context(), &PublicDashboardListQuery{
|
resp, err := api.PublicDashboardService.FindAllWithPagination(c.Req.Context(), &PublicDashboardListQuery{
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
Query: c.Query("query"),
|
Query: c.Query("query"),
|
||||||
Page: page,
|
Page: page,
|
||||||
Limit: perPage,
|
Limit: perPage,
|
||||||
@ -123,7 +123,7 @@ func (api *Api) GetPublicDashboard(c *contextmodel.ReqContext) response.Response
|
|||||||
return response.Err(ErrPublicDashboardIdentifierNotSet.Errorf("GetPublicDashboard: no dashboard Uid for public dashboard specified"))
|
return response.Err(ErrPublicDashboardIdentifierNotSet.Errorf("GetPublicDashboard: no dashboard Uid for public dashboard specified"))
|
||||||
}
|
}
|
||||||
|
|
||||||
pd, err := api.PublicDashboardService.FindByDashboardUid(c.Req.Context(), c.OrgID, dashboardUid)
|
pd, err := api.PublicDashboardService.FindByDashboardUid(c.Req.Context(), c.SignedInUser.GetOrgID(), dashboardUid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return response.Err(err)
|
return response.Err(err)
|
||||||
}
|
}
|
||||||
@ -164,7 +164,7 @@ func (api *Api) CreatePublicDashboard(c *contextmodel.ReqContext) response.Respo
|
|||||||
// Always set the orgID and userID from the session
|
// Always set the orgID and userID from the session
|
||||||
dto := &SavePublicDashboardDTO{
|
dto := &SavePublicDashboardDTO{
|
||||||
UserId: c.UserID,
|
UserId: c.UserID,
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
DashboardUid: dashboardUid,
|
DashboardUid: dashboardUid,
|
||||||
PublicDashboard: pdDTO,
|
PublicDashboard: pdDTO,
|
||||||
}
|
}
|
||||||
@ -201,7 +201,7 @@ func (api *Api) UpdatePublicDashboard(c *contextmodel.ReqContext) response.Respo
|
|||||||
dto := SavePublicDashboardDTO{
|
dto := SavePublicDashboardDTO{
|
||||||
Uid: uid,
|
Uid: uid,
|
||||||
UserId: c.UserID,
|
UserId: c.UserID,
|
||||||
OrgID: c.OrgID,
|
OrgID: c.SignedInUser.GetOrgID(),
|
||||||
DashboardUid: dashboardUid,
|
DashboardUid: dashboardUid,
|
||||||
PublicDashboard: pdDTO,
|
PublicDashboard: pdDTO,
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ func (s *service) QuotaReached(c *contextmodel.ReqContext, targetSrv quota.Targe
|
|||||||
|
|
||||||
params := "a.ScopeParameters{}
|
params := "a.ScopeParameters{}
|
||||||
if c.IsSignedIn {
|
if c.IsSignedIn {
|
||||||
params.OrgID = c.OrgID
|
params.OrgID = c.SignedInUser.GetOrgID()
|
||||||
params.UserID = c.UserID
|
params.UserID = c.UserID
|
||||||
}
|
}
|
||||||
return s.CheckQuotaReached(c.Req.Context(), targetSrv, params)
|
return s.CheckQuotaReached(c.Req.Context(), targetSrv, params)
|
||||||
|
@ -5,9 +5,10 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/api/response"
|
"github.com/grafana/grafana/pkg/api/response"
|
||||||
"github.com/grafana/grafana/pkg/api/routing"
|
"github.com/grafana/grafana/pkg/api/routing"
|
||||||
@ -32,7 +33,7 @@ func (s *searchHTTPService) RegisterHTTPRoutes(storageRoute routing.RouteRegiste
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *searchHTTPService) doQuery(c *contextmodel.ReqContext) response.Response {
|
func (s *searchHTTPService) doQuery(c *contextmodel.ReqContext) response.Response {
|
||||||
searchReadinessCheckResp := s.search.IsReady(c.Req.Context(), c.OrgID)
|
searchReadinessCheckResp := s.search.IsReady(c.Req.Context(), c.SignedInUser.GetOrgID())
|
||||||
if !searchReadinessCheckResp.IsReady {
|
if !searchReadinessCheckResp.IsReady {
|
||||||
dashboardSearchNotServedRequestsCounter.With(prometheus.Labels{
|
dashboardSearchNotServedRequestsCounter.With(prometheus.Labels{
|
||||||
"reason": searchReadinessCheckResp.Reason,
|
"reason": searchReadinessCheckResp.Reason,
|
||||||
@ -57,7 +58,7 @@ func (s *searchHTTPService) doQuery(c *contextmodel.ReqContext) response.Respons
|
|||||||
return response.Error(400, "error parsing body", err)
|
return response.Error(400, "error parsing body", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp := s.search.doDashboardQuery(c.Req.Context(), c.SignedInUser, c.OrgID, *query)
|
resp := s.search.doDashboardQuery(c.Req.Context(), c.SignedInUser, c.SignedInUser.GetOrgID(), *query)
|
||||||
|
|
||||||
if resp.Error != nil {
|
if resp.Error != nil {
|
||||||
return response.Error(500, "error handling search request", resp.Error)
|
return response.Error(500, "error handling search request", resp.Error)
|
||||||
|
@ -70,7 +70,7 @@ func (s *httpEntityStore) getGRNFromRequest(c *contextmodel.ReqContext) (*grn.GR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return &grn.GRN{
|
return &grn.GRN{
|
||||||
TenantID: c.OrgID,
|
TenantID: c.SignedInUser.GetOrgID(),
|
||||||
ResourceKind: params[":kind"],
|
ResourceKind: params[":kind"],
|
||||||
ResourceIdentifier: params[":uid"],
|
ResourceIdentifier: params[":uid"],
|
||||||
}, params, nil
|
}, params, nil
|
||||||
@ -267,7 +267,7 @@ func (s *httpEntityStore) doUpload(c *contextmodel.ReqContext) response.Response
|
|||||||
grn := &grn.GRN{
|
grn := &grn.GRN{
|
||||||
ResourceIdentifier: uid,
|
ResourceIdentifier: uid,
|
||||||
ResourceKind: kind.ID,
|
ResourceKind: kind.ID,
|
||||||
TenantID: c.OrgID,
|
TenantID: c.SignedInUser.GetOrgID(),
|
||||||
}
|
}
|
||||||
|
|
||||||
if !overwriteExistingFile {
|
if !overwriteExistingFile {
|
||||||
|
@ -272,7 +272,7 @@ func (s *standardStorageService) list(c *contextmodel.ReqContext) response.Respo
|
|||||||
|
|
||||||
func (s *standardStorageService) getConfig(c *contextmodel.ReqContext) response.Response {
|
func (s *standardStorageService) getConfig(c *contextmodel.ReqContext) response.Response {
|
||||||
roots := make([]RootStorageMeta, 0)
|
roots := make([]RootStorageMeta, 0)
|
||||||
orgId := c.OrgID
|
orgId := c.SignedInUser.GetOrgID()
|
||||||
t := s.tree
|
t := s.tree
|
||||||
t.assureOrgIsInitialized(orgId)
|
t.assureOrgIsInitialized(orgId)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user