Files
2025-01-21 12:06:55 +03:00

54 lines
1.2 KiB
Go

package legacy
import (
"context"
"fmt"
claims "github.com/grafana/authlib/types"
"github.com/grafana/grafana/pkg/storage/legacysql"
"github.com/grafana/grafana/pkg/storage/unified/sql/sqltemplate"
)
type ListDisplayQuery struct {
OrgID int64
UIDs []string
IDs []int64
}
var sqlQueryDisplayTemplate = mustTemplate("display_query.sql")
func newListDisplay(sql *legacysql.LegacyDatabaseHelper, q *ListDisplayQuery) listDisplayQuery {
return listDisplayQuery{
SQLTemplate: sqltemplate.New(sql.DialectForDriver()),
UserTable: sql.Table("user"),
OrgUserTable: sql.Table("org_user"),
Query: q,
}
}
type listDisplayQuery struct {
sqltemplate.SQLTemplate
Query *ListDisplayQuery
UserTable string
OrgUserTable string
}
func (r listDisplayQuery) Validate() error {
return nil // TODO
}
// GetDisplay implements LegacyIdentityStore.
func (s *legacySQLStore) ListDisplay(ctx context.Context, ns claims.NamespaceInfo, query ListDisplayQuery) (*ListUserResult, error) {
query.OrgID = ns.OrgID
if ns.OrgID == 0 {
return nil, fmt.Errorf("expected non zero org id")
}
sql, err := s.sql(ctx)
if err != nil {
return nil, err
}
return s.queryUsers(ctx, sql, sqlQueryDisplayTemplate, newListDisplay(sql, &query), 10000)
}