Skip to content

Commit

Permalink
fix: scan by layers
Browse files Browse the repository at this point in the history
  • Loading branch information
aereal committed Apr 8, 2022
1 parent bd5841a commit c7d90e0
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 16 deletions.
23 changes: 8 additions & 15 deletions onion.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,25 +130,18 @@ type Rule struct {
Denied []string
}

func (r *Rule) deter(layer *Layer) Decision {
for _, layerName := range r.Allowed {
if layer.Name == layerName {
return DecisionAllow
func (r *Rule) determinate(layers *OrderedSet[*Layer]) Decision {
x := DecisionAllow
for _, allowedLayer := range r.Allowed {
if layers.containsByKey(allowedLayer) {
x = x.And(DecisionAllow)
}
}
for _, layerName := range r.Denied {
if layer.Name == layerName {
return DecisionDeny
for _, deniedLayer := range r.Denied {
if layers.containsByKey(deniedLayer) {
x = x.And(DecisionDeny)
}
}
return DecisionDeny
}

func (r *Rule) determinate(layers *OrderedSet[*Layer]) Decision {
x := DecisionAllow
for _, layer := range layers.items() {
x = x.And(r.deter(layer))
}
return x
}

Expand Down
2 changes: 1 addition & 1 deletion onion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ func TestConfig_CanDepend(t *testing.T) {
&onion.Layer{Name: "c", PackageNames: onion.NewPackagesSet("pkg/5", "pkg/6")},
),
Rules: []*onion.Rule{
{Layer: "a", Allowed: []string{"b"}},
{Layer: "a", Allowed: []string{"b"}, Denied: []string{"c"}},
},
}
type args struct {
Expand Down

0 comments on commit c7d90e0

Please sign in to comment.