mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Search: create bluge based index (#48606)
This commit is contained in:
@@ -105,8 +105,24 @@ func (s *StandardSearchService) getUser(ctx context.Context, backendUser *backen
|
||||
return user, nil
|
||||
}
|
||||
|
||||
func (s *StandardSearchService) DoDashboardQuery(ctx context.Context, user *backend.User, orgId int64, _ DashboardQuery) *backend.DataResponse {
|
||||
func (s *StandardSearchService) DoDashboardQuery(ctx context.Context, user *backend.User, orgId int64, q DashboardQuery) *backend.DataResponse {
|
||||
rsp := &backend.DataResponse{}
|
||||
signedInUser, err := s.getUser(ctx, user, orgId)
|
||||
if err != nil {
|
||||
rsp.Error = err
|
||||
return rsp
|
||||
}
|
||||
|
||||
filter, err := s.auth.GetDashboardReadFilter(signedInUser)
|
||||
if err != nil {
|
||||
rsp.Error = err
|
||||
return rsp
|
||||
}
|
||||
|
||||
reader := s.dashboardIndex.reader[orgId]
|
||||
if reader != nil && q.Query != "" { // frontend initializes with empty string
|
||||
return doBlugeQuery(ctx, s, reader, filter, q)
|
||||
}
|
||||
|
||||
dashboards, err := s.dashboardIndex.getDashboards(ctx, orgId)
|
||||
if err != nil {
|
||||
@@ -114,29 +130,14 @@ func (s *StandardSearchService) DoDashboardQuery(ctx context.Context, user *back
|
||||
return rsp
|
||||
}
|
||||
|
||||
signedInUser, err := s.getUser(ctx, user, orgId)
|
||||
if err != nil {
|
||||
rsp.Error = err
|
||||
return rsp
|
||||
}
|
||||
|
||||
dashboards, err = s.applyAuthFilter(signedInUser, dashboards)
|
||||
if err != nil {
|
||||
rsp.Error = err
|
||||
return rsp
|
||||
}
|
||||
dashboards = s.applyAuthFilter(filter, dashboards)
|
||||
|
||||
rsp.Frames = metaToFrame(dashboards)
|
||||
|
||||
return rsp
|
||||
}
|
||||
|
||||
func (s *StandardSearchService) applyAuthFilter(user *models.SignedInUser, dashboards []dashboard) ([]dashboard, error) {
|
||||
filter, err := s.auth.GetDashboardReadFilter(user)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (s *StandardSearchService) applyAuthFilter(filter ResourceFilter, dashboards []dashboard) []dashboard {
|
||||
// create a list of all viewable dashboards for this user.
|
||||
res := make([]dashboard, 0, len(dashboards))
|
||||
for _, dash := range dashboards {
|
||||
@@ -144,7 +145,7 @@ func (s *StandardSearchService) applyAuthFilter(user *models.SignedInUser, dashb
|
||||
res = append(res, dash)
|
||||
}
|
||||
}
|
||||
return res, nil
|
||||
return res
|
||||
}
|
||||
|
||||
type simpleCounter struct {
|
||||
|
||||
Reference in New Issue
Block a user