Move SignedInUser to user service and RoleType and Roles to org (#53445)
* Move SignedInUser to user service and RoleType and Roles to org * Use go naming convention for roles * Fix some imports and leftovers * Fix ldap debug test * Fix lint * Fix lint 2 * Fix lint 3 * Fix type and not needed conversion * Clean up messages in api tests * Clean up api tests 2
This commit is contained in:
@@ -3,21 +3,22 @@ package pipeline
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/org"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
)
|
||||
|
||||
type RoleCheckAuthorizer struct {
|
||||
role models.RoleType
|
||||
role org.RoleType
|
||||
}
|
||||
|
||||
func NewRoleCheckAuthorizer(role models.RoleType) *RoleCheckAuthorizer {
|
||||
func NewRoleCheckAuthorizer(role org.RoleType) *RoleCheckAuthorizer {
|
||||
return &RoleCheckAuthorizer{role: role}
|
||||
}
|
||||
|
||||
func (s *RoleCheckAuthorizer) CanSubscribe(_ context.Context, u *models.SignedInUser) (bool, error) {
|
||||
func (s *RoleCheckAuthorizer) CanSubscribe(_ context.Context, u *user.SignedInUser) (bool, error) {
|
||||
return u.HasRole(s.role), nil
|
||||
}
|
||||
|
||||
func (s *RoleCheckAuthorizer) CanPublish(_ context.Context, u *models.SignedInUser) (bool, error) {
|
||||
func (s *RoleCheckAuthorizer) CanPublish(_ context.Context, u *user.SignedInUser) (bool, error) {
|
||||
return u.HasRole(s.role), nil
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@ package pipeline
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/org"
|
||||
)
|
||||
|
||||
// ChannelAuthCheckConfig is used to define auth rules for a channel.
|
||||
type ChannelAuthCheckConfig struct {
|
||||
RequireRole models.RoleType `json:"role,omitempty"`
|
||||
RequireRole org.RoleType `json:"role,omitempty"`
|
||||
}
|
||||
|
||||
type ChannelAuthConfig struct {
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"os"
|
||||
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||
@@ -112,12 +113,12 @@ type Subscriber interface {
|
||||
|
||||
// PublishAuthChecker checks whether current user can publish to a channel.
|
||||
type PublishAuthChecker interface {
|
||||
CanPublish(ctx context.Context, u *models.SignedInUser) (bool, error)
|
||||
CanPublish(ctx context.Context, u *user.SignedInUser) (bool, error)
|
||||
}
|
||||
|
||||
// SubscribeAuthChecker checks whether current user can subscribe to a channel.
|
||||
type SubscribeAuthChecker interface {
|
||||
CanSubscribe(ctx context.Context, u *models.SignedInUser) (bool, error)
|
||||
CanSubscribe(ctx context.Context, u *user.SignedInUser) (bool, error)
|
||||
}
|
||||
|
||||
// LiveChannelRule is an in-memory representation of each specific rule to be executed by Pipeline.
|
||||
@@ -140,7 +141,7 @@ type LiveChannelRule struct {
|
||||
Subscribers []Subscriber
|
||||
|
||||
// PublishAuth allows providing authorization logic for publishing into a channel.
|
||||
// If PublishAuth is not set then ROLE_ADMIN is required to publish.
|
||||
// If PublishAuth is not set then RoleAdmin is required to publish.
|
||||
PublishAuth PublishAuthChecker
|
||||
// DataOutputters if set allows doing something useful with raw input data. If not set then
|
||||
// we step further to the converter. Each DataOutputter can optionally return a slice
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/live/livecontext"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
||||
"github.com/grafana/grafana-plugin-sdk-go/live"
|
||||
@@ -15,7 +16,7 @@ type BuiltinSubscriber struct {
|
||||
}
|
||||
|
||||
type ChannelHandlerGetter interface {
|
||||
GetChannelHandler(ctx context.Context, user *models.SignedInUser, channel string) (models.ChannelHandler, live.Channel, error)
|
||||
GetChannelHandler(ctx context.Context, user *user.SignedInUser, channel string) (models.ChannelHandler, live.Channel, error)
|
||||
}
|
||||
|
||||
const SubscriberTypeBuiltin = "builtin"
|
||||
|
||||
Reference in New Issue
Block a user