mirror of
https://github.com/grafana/grafana.git
synced 2024-11-26 02:40:26 -06:00
78596a6756
Fixes #30144 Co-authored-by: dsotirakis <sotirakis.dim@gmail.com> Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com> Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com> Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com> Co-authored-by: Will Browne <wbrowne@users.noreply.github.com> Co-authored-by: Leon Sorokin <leeoniya@gmail.com> Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com> Co-authored-by: spinillos <selenepinillos@gmail.com> Co-authored-by: Karl Persson <kalle.persson@grafana.com> Co-authored-by: Leonard Gram <leo@xlson.com>
40 lines
980 B
Go
40 lines
980 B
Go
package hooks
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/api/dtos"
|
|
"github.com/grafana/grafana/pkg/models"
|
|
)
|
|
|
|
type IndexDataHook func(indexData *dtos.IndexViewData, req *models.ReqContext)
|
|
|
|
type LoginHook func(loginInfo *models.LoginInfo, req *models.ReqContext)
|
|
|
|
type HooksService struct {
|
|
indexDataHooks []IndexDataHook
|
|
loginHooks []LoginHook
|
|
}
|
|
|
|
func ProvideService() *HooksService {
|
|
return &HooksService{}
|
|
}
|
|
|
|
func (srv *HooksService) AddIndexDataHook(hook IndexDataHook) {
|
|
srv.indexDataHooks = append(srv.indexDataHooks, hook)
|
|
}
|
|
|
|
func (srv *HooksService) RunIndexDataHooks(indexData *dtos.IndexViewData, req *models.ReqContext) {
|
|
for _, hook := range srv.indexDataHooks {
|
|
hook(indexData, req)
|
|
}
|
|
}
|
|
|
|
func (srv *HooksService) AddLoginHook(hook LoginHook) {
|
|
srv.loginHooks = append(srv.loginHooks, hook)
|
|
}
|
|
|
|
func (srv *HooksService) RunLoginHook(loginInfo *models.LoginInfo, req *models.ReqContext) {
|
|
for _, hook := range srv.loginHooks {
|
|
hook(loginInfo, req)
|
|
}
|
|
}
|