mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 05:32:32 +08:00
54 lines
1.2 KiB
Go
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)
|
|
}
|