pomerium/pkg/policy/criteria/accept.go
Caleb Doxsey efffe57bf0
ppl: pass contextual information through policy (#2612)
* ppl: pass contextual information through policy

* maybe fix nginx

* fix nginx

* pr comments

* go mod tidy
2021-09-20 16:02:26 -06:00

36 lines
826 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"
)
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(c.Name())
rule.Head.Value = NewCriterionTerm(true, ReasonAccept)
rule.Body = ast.Body{ast.NewExpr(ast.BooleanTerm(true))}
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)
}