mirror of
https://github.com/jsiebens/ionscale.git
synced 2026-03-31 15:07:49 +01:00
fix: add support for autgroup:member when validating node attributes
Signed-off-by: Johan Siebens <johan.siebens@gmail.com>
This commit is contained in:
@@ -164,6 +164,10 @@ func (a ACLPolicy) NodeCapabilities(m *Machine) []tailcfg.NodeCapability {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (alias == AutoGroupMember || alias == AutoGroupMembers) && !m.HasTags() {
|
||||||
|
return true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -113,6 +113,38 @@ func TestACLPolicy_NodeAttributesWithUserAndTags(t *testing.T) {
|
|||||||
assert.Equal(t, expectedAttrs, actualAttrs)
|
assert.Equal(t, expectedAttrs, actualAttrs)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestACLPolicy_NodeAttributesWithAutoGroupMember(t *testing.T) {
|
||||||
|
p1 := createMachine("john@example.com")
|
||||||
|
|
||||||
|
policy := ACLPolicy{
|
||||||
|
ionscale.ACLPolicy{
|
||||||
|
NodeAttrs: []ionscale.ACLNodeAttrGrant{
|
||||||
|
{
|
||||||
|
Target: []string{"autogroup:member"},
|
||||||
|
Attr: []string{
|
||||||
|
"attr1",
|
||||||
|
"attr2",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Target: []string{"tag:web"},
|
||||||
|
Attr: []string{
|
||||||
|
"attr3",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
actualAttrs := policy.NodeCapabilities(p1)
|
||||||
|
expectedAttrs := []tailcfg.NodeCapability{
|
||||||
|
tailcfg.NodeCapability("attr1"),
|
||||||
|
tailcfg.NodeCapability("attr2"),
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Equal(t, expectedAttrs, actualAttrs)
|
||||||
|
}
|
||||||
|
|
||||||
func TestACLPolicy_BuildFilterRulesEmptyACL(t *testing.T) {
|
func TestACLPolicy_BuildFilterRulesEmptyACL(t *testing.T) {
|
||||||
p1 := createMachine("john@example.com")
|
p1 := createMachine("john@example.com")
|
||||||
p2 := createMachine("jane@example.com")
|
p2 := createMachine("jane@example.com")
|
||||||
|
|||||||
Reference in New Issue
Block a user