adding default acl function

This commit is contained in:
afeiszli 2022-03-13 20:58:30 -04:00
parent c8e3de40b9
commit 8306c213a7
2 changed files with 36 additions and 0 deletions

View file

@ -85,6 +85,12 @@ func initialize() { // Client Mode Prereq Check
logger.FatalLog("could not inintialize comms network")
}
}
err = serverctl.SetDefaultACLS()
if err != nil {
logger.FatalLog("error setting default acls: ", err.Error())
}
// initialize iptables to ensure gateways work correctly and mq is forwarded if containerized
if servercfg.ManageIPTables() != "off" {
if err = serverctl.InitIPTables(); err != nil {

View file

@ -10,6 +10,8 @@ import (
"github.com/gravitl/netmaker/database"
"github.com/gravitl/netmaker/logger"
"github.com/gravitl/netmaker/logic"
"github.com/gravitl/netmaker/logic/acls"
"github.com/gravitl/netmaker/logic/acls/nodeacls"
"github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/netclient/ncutils"
"github.com/gravitl/netmaker/servercfg"
@ -144,3 +146,31 @@ func SyncServerNetwork(network string) error {
*/
return nil
}
// SetDefaultACLS - runs through each network to see if ACL's are set. If not, goes through each node in network and adds the default ACL
func SetDefaultACLS() error {
// upgraded systems will not have ACL's set, which is why we need this function
var err error
networks, err := logic.GetNetworks()
if err != nil {
return err
}
for i, _ := range networks {
_, err := nodeacls.FetchAllACLs(nodeacls.NetworkID(networks[i].NetID))
if err != nil {
if database.IsEmptyRecord(err) {
nodes, err := logic.GetNetworkNodes(networks[i].NetID)
if err != nil {
return err
}
for j, _ := range nodes {
_, err = nodeacls.CreateNodeACL(nodeacls.NetworkID(networks[i].NetID), nodeacls.NodeID(nodes[j].ID), acls.Allowed)
if err != nil {
return err
}
}
}
}
}
return err
}