41 lines
1013 B
Go
41 lines
1013 B
Go
package policy
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/docker/attest/pkg/oci"
|
|
"github.com/open-policy-agent/opa/rego"
|
|
)
|
|
|
|
type MockPolicyEvaluator struct {
|
|
EvaluateFunc func(ctx context.Context, resolver oci.AttestationResolver, policy []*PolicyFile, input *PolicyInput) (*rego.ResultSet, error)
|
|
}
|
|
|
|
func (pe *MockPolicyEvaluator) Evaluate(ctx context.Context, resolver oci.AttestationResolver, policy []*PolicyFile, input *PolicyInput) (*rego.ResultSet, error) {
|
|
if pe.EvaluateFunc != nil {
|
|
return pe.EvaluateFunc(ctx, resolver, policy, input)
|
|
}
|
|
return AllowedResult(), nil
|
|
}
|
|
|
|
func GetMockPolicy() PolicyEvaluator {
|
|
return &MockPolicyEvaluator{
|
|
EvaluateFunc: func(ctx context.Context, resolver oci.AttestationResolver, pfs []*PolicyFile, input *PolicyInput) (*rego.ResultSet, error) {
|
|
return AllowedResult(), nil
|
|
},
|
|
}
|
|
}
|
|
|
|
func AllowedResult() *rego.ResultSet {
|
|
return ®o.ResultSet{
|
|
{
|
|
Bindings: rego.Vars{},
|
|
Expressions: []*rego.ExpressionValue{
|
|
{
|
|
Value: true,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|