ppl: fix empty/no-op allow block added in some cases to converted PPL policies (#5289)

Fix empty/no-op allow block added in some cases to converted PPL policies
This commit is contained in:
Joe Kralicky 2024-09-16 18:52:54 -04:00 committed by GitHub
parent 6171c09596
commit d06a101f79
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 76 additions and 2 deletions

View file

@ -533,3 +533,73 @@ else := value if {
}
`, str)
}
func TestPolicy_ToPPL_Embedded(t *testing.T) {
policy := Policy{
Policy: &PPLPolicy{
Policy: &parser.Policy{
Rules: []parser.Rule{
{
Action: parser.ActionAllow,
Or: []parser.Criterion{
{
Name: "foo",
Data: parser.Number("5"),
},
},
},
},
},
},
}
assert.Equal(t, policy.Policy.Policy, policy.ToPPL())
policy2 := Policy{
AllowedUsers: []string{"test"},
Policy: &PPLPolicy{
Policy: &parser.Policy{
Rules: []parser.Rule{
{
Action: parser.ActionAllow,
Or: []parser.Criterion{
{
Name: "foo",
Data: parser.Number("5"),
},
},
},
},
},
},
}
assert.Equal(t, &parser.Policy{
Rules: []parser.Rule{
{
Action: parser.ActionAllow,
Or: []parser.Criterion{
{
Name: "user",
Data: parser.Object{
"is": parser.String("test"),
},
},
{
Name: "email",
Data: parser.Object{
"is": parser.String("test"),
},
},
},
},
{
Action: parser.ActionAllow,
Or: []parser.Criterion{
{
Name: "foo",
Data: parser.Number("5"),
},
},
},
},
}, policy2.ToPPL())
}