pomerium/pkg/policy/criteria/accept.go
2021-07-27 12:29:42 -06:00

40 lines
835 B
Go

package criteria
import (
"github.com/open-policy-agent/opa/ast"
"github.com/pomerium/pomerium/pkg/policy/generator"
"github.com/pomerium/pomerium/pkg/policy/parser"
)
var acceptBody = ast.Body{
ast.MustParseExpr(`v := true`),
}
type acceptCriterion struct {
g *Generator
}
func (acceptCriterion) DataType() CriterionDataType {
return generator.CriterionDataTypeUnused
}
func (acceptCriterion) Name() string {
return "accept"
}
func (c acceptCriterion) GenerateRule(_ string, _ parser.Value) (*ast.Rule, []*ast.Rule, error) {
rule := c.g.NewRule("accept")
rule.Head.Value = ast.VarTerm("v")
rule.Body = acceptBody
return rule, nil, nil
}
// Accept returns a Criterion which always returns true.
func Accept(generator *Generator) Criterion {
return acceptCriterion{g: generator}
}
func init() {
Register(Accept)
}