middleware

package
v0.0.0-test Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2021 License: AGPL-3.0 Imports: 39 Imported by: 680

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ReqGrafanaAdmin = Auth(&AuthOptions{
		ReqSignedIn:     true,
		ReqGrafanaAdmin: true,
	})
	ReqSignedIn            = Auth(&AuthOptions{ReqSignedIn: true})
	ReqSignedInNoAnonymous = Auth(&AuthOptions{ReqSignedIn: true, ReqNoAnonynmous: true})
	ReqEditorRole          = RoleAuth(models.ROLE_EDITOR, models.ROLE_ADMIN)
	ReqOrgAdmin            = RoleAuth(models.ROLE_ADMIN)
)

Functions

func AddCSPHeader

func AddCSPHeader(cfg *setting.Cfg, logger log.Logger) func(http.Handler) http.Handler

AddCSPHeader adds the Content Security Policy header.

func AddDefaultResponseHeaders

func AddDefaultResponseHeaders(cfg *setting.Cfg) web.Handler

func AdminOrFeatureEnabled

func AdminOrFeatureEnabled(enabled bool) web.Handler

AdminOrFeatureEnabled creates a middleware that allows access if the signed in user is either an Org Admin or if the feature flag is enabled. Intended for when feature flags open up access to APIs that are otherwise only available to admins.

func Auth

func Auth(options *AuthOptions) web.Handler

func EnsureEditorOrViewerCanEdit

func EnsureEditorOrViewerCanEdit(c *models.ReqContext)

func Gziper

func Gziper() func(http.Handler) http.Handler

func HandleNoCacheHeader

func HandleNoCacheHeader(ctx *models.ReqContext)

func Logger

func Logger(cfg *setting.Cfg) web.Handler

func NoAuth

func NoAuth() web.Handler

NoAuth creates a middleware that doesn't require any authentication. If forceLogin param is set it will redirect the user to the login page.

func OrgAdminFolderAdminOrTeamAdmin

func OrgAdminFolderAdminOrTeamAdmin(c *models.ReqContext)

func OrgRedirect

func OrgRedirect(cfg *setting.Cfg) web.Handler

OrgRedirect changes org and redirects users if the querystring `orgId` doesn't match the active org.

func ProvideRouteOperationName

func ProvideRouteOperationName(name string) web.Handler

ProvideRouteOperationName creates a named middleware responsible for populating the context with the route operation name that can be used later in the request pipeline. Implements routing.RegisterNamedMiddleware.

func Quota

func Quota(quotaService *quota.QuotaService) func(string) web.Handler

Quota returns a function that returns a function used to call quotaservice based on target name

func RateLimit

func RateLimit(rps, burst int, getTime getTimeFn) web.Handler

RateLimit is a very basic rate limiter. Will allow average of "rps" requests per second over an extended period of time, with max "burst" requests at the same time. getTime should return the current time. For non-testing purposes use time.Now

func Recovery

func Recovery(cfg *setting.Cfg) web.Handler

Recovery returns a middleware that recovers from any panics and writes a 500 if there was one. While Martini is in development mode, Recovery will also output the panic as HTML.

func RedirectFromLegacyPanelEditURL

func RedirectFromLegacyPanelEditURL(cfg *setting.Cfg) func(c *models.ReqContext)

In Grafana v7.0 we changed panel edit & view query parameters. This middleware tries to detect those old url parameters and direct to the new url query params

func ReqNotSignedIn

func ReqNotSignedIn(c *models.ReqContext)

func RequestMetrics

func RequestMetrics(cfg *setting.Cfg) func(handler string) web.Handler

RequestMetrics is a middleware handler that instruments the request.

func RequestTracing

func RequestTracing() web.Handler

func RoleAuth

func RoleAuth(roles ...models.RoleType) web.Handler

func RouteOperationNameFromContext

func RouteOperationNameFromContext(ctx context.Context) (string, bool)

RouteOperationNameFromContext receives the route operation name from context, if set.

func SnapshotPublicModeOrSignedIn

func SnapshotPublicModeOrSignedIn(cfg *setting.Cfg) web.Handler

SnapshotPublicModeOrSignedIn creates a middleware that allows access if snapshot public mode is enabled or if user is signed in.

func ValidateHostHeader

func ValidateHostHeader(cfg *setting.Cfg) web.Handler

Types

type AuthOptions

type AuthOptions struct {
	ReqGrafanaAdmin bool
	ReqSignedIn     bool
	ReqNoAnonynmous bool
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL