package app import ( "context" "github.com/grafana/grafana/pkg/apimachinery/identity" "k8s.io/apiserver/pkg/authorization/authorizer" ) func GetAuthorizer() authorizer.Authorizer { return authorizer.AuthorizerFunc(func( ctx context.Context, attr authorizer.Attributes, ) (authorized authorizer.Decision, reason string, err error) { if !attr.IsResourceRequest() { return authorizer.DecisionNoOpinion, "", nil } // require a user u, err := identity.GetRequester(ctx) if err != nil { return authorizer.DecisionDeny, "valid user is required", err } // check if is admin if u.HasRole(identity.RoleAdmin) { return authorizer.DecisionAllow, "", nil } return authorizer.DecisionDeny, "forbidden", nil }) }