AuthZ: Launch service within IAM app (#96421)
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package rbac
|
||||
|
||||
import (
|
||||
authzv1 "github.com/grafana/authlib/authz/proto/v1"
|
||||
authzextv1 "github.com/grafana/grafana/pkg/services/authz/proto/v1"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/infra/tracing"
|
||||
"github.com/grafana/grafana/pkg/services/authz/rbac/store"
|
||||
"github.com/grafana/grafana/pkg/storage/legacysql"
|
||||
)
|
||||
|
||||
type Service struct {
|
||||
authzv1.UnimplementedAuthzServiceServer
|
||||
authzextv1.UnimplementedAuthzExtentionServiceServer
|
||||
|
||||
store *store.Store
|
||||
logger log.Logger
|
||||
tracer tracing.Tracer
|
||||
}
|
||||
|
||||
func NewService(sql legacysql.LegacyDatabaseProvider, logger log.Logger, tracer tracing.Tracer) *Service {
|
||||
return &Service{
|
||||
store: store.NewStore(sql),
|
||||
logger: logger,
|
||||
tracer: tracer,
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Implement Check
|
||||
// func (s *Service) Check(ctx context.Context, req *authzv1.CheckRequest) (*authzv1.CheckResponse, error) {
|
||||
// This needs to be done for the database provider
|
||||
// ns := req.GetNamespace()
|
||||
// ctx = request.WithNamespace(ctx, ns)
|
||||
|
||||
// return nil, nil
|
||||
// }
|
||||
@@ -0,0 +1,15 @@
|
||||
package store
|
||||
|
||||
import "github.com/grafana/grafana/pkg/storage/legacysql"
|
||||
|
||||
// TODO (gamab): Implement GetRoles, GetTeams, GetFolders, GetPermissions
|
||||
|
||||
type Store struct {
|
||||
sql legacysql.LegacyDatabaseProvider
|
||||
}
|
||||
|
||||
func NewStore(sql legacysql.LegacyDatabaseProvider) *Store {
|
||||
return &Store{
|
||||
sql: sql,
|
||||
}
|
||||
}
|
||||
@@ -16,11 +16,22 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/accesscontrol"
|
||||
"github.com/grafana/grafana/pkg/services/authn"
|
||||
"github.com/grafana/grafana/pkg/services/authz/mappers"
|
||||
authzextv1 "github.com/grafana/grafana/pkg/services/authz/proto/v1"
|
||||
"github.com/grafana/grafana/pkg/services/authz/rbac"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/services/folder"
|
||||
"github.com/grafana/grafana/pkg/services/grpcserver"
|
||||
"github.com/grafana/grafana/pkg/storage/legacysql"
|
||||
)
|
||||
|
||||
func RegisterRBACAuthZService(handler grpcserver.Provider, db legacysql.LegacyDatabaseProvider, tracer tracing.Tracer) {
|
||||
server := rbac.NewService(db, log.New("authz-grpc-server"), tracer)
|
||||
|
||||
srv := handler.GetServer()
|
||||
authzv1.RegisterAuthzServiceServer(srv, server)
|
||||
authzextv1.RegisterAuthzExtentionServiceServer(srv, server)
|
||||
}
|
||||
|
||||
var _ authzv1.AuthzServiceServer = (*legacyServer)(nil)
|
||||
var _ grpc_auth.ServiceAuthFuncOverride = (*legacyServer)(nil)
|
||||
var _ authzlib.ServiceAuthorizeFuncOverride = (*legacyServer)(nil)
|
||||
|
||||
Reference in New Issue
Block a user