Преглед изворни кода

add OLD_ACL_SUPPORT setting

Max Ma пре 9 месеци
родитељ
комит
6ea86b4d7b
4 измењених фајлова са 28 додато и 15 уклоњено
  1. 1 1
      docker/emqx.conf
  2. 17 14
      logic/acls/nodeacls/retrieve.go
  3. 2 0
      scripts/netmaker.default.env
  4. 8 0
      servercfg/serverconf.go

+ 1 - 1
docker/emqx.conf

@@ -18,4 +18,4 @@ authorization {
       enable = true
     }
   ]
-}
+}

+ 17 - 14
logic/acls/nodeacls/retrieve.go

@@ -7,26 +7,29 @@ import (
 	"sync"
 
 	"github.com/gravitl/netmaker/logic/acls"
+	"github.com/gravitl/netmaker/servercfg"
 )
 
 var NodesAllowedACLMutex = &sync.Mutex{}
 
 // AreNodesAllowed - checks if nodes are allowed to communicate in their network ACL
 func AreNodesAllowed(networkID NetworkID, node1, node2 NodeID) bool {
-	return true
-	// NodesAllowedACLMutex.Lock()
-	// defer NodesAllowedACLMutex.Unlock()
-	// var currentNetworkACL, err = FetchAllACLs(networkID)
-	// if err != nil {
-	// 	return false
-	// }
-	// var allowed bool
-	// acls.AclMutex.Lock()
-	// currNetworkACLNode1 := currentNetworkACL[acls.AclID(node1)]
-	// currNetworkACLNode2 := currentNetworkACL[acls.AclID(node2)]
-	// acls.AclMutex.Unlock()
-	// allowed = currNetworkACLNode1.IsAllowed(acls.AclID(node2)) && currNetworkACLNode2.IsAllowed(acls.AclID(node1))
-	// return allowed
+	if !servercfg.IsOldAclEnabled() {
+		return true
+	}
+	NodesAllowedACLMutex.Lock()
+	defer NodesAllowedACLMutex.Unlock()
+	var currentNetworkACL, err = FetchAllACLs(networkID)
+	if err != nil {
+		return false
+	}
+	var allowed bool
+	acls.AclMutex.Lock()
+	currNetworkACLNode1 := currentNetworkACL[acls.AclID(node1)]
+	currNetworkACLNode2 := currentNetworkACL[acls.AclID(node2)]
+	acls.AclMutex.Unlock()
+	allowed = currNetworkACLNode1.IsAllowed(acls.AclID(node2)) && currNetworkACLNode2.IsAllowed(acls.AclID(node1))
+	return allowed
 }
 
 // FetchNodeACL - fetches a specific node's ACL in a given network

+ 2 - 0
scripts/netmaker.default.env

@@ -90,3 +90,5 @@ EMAIL_SENDER_PASSWORD=
 DEFAULT_DOMAIN=netmaker.hosted
 # managed dns setting, set to true to resolve dns entries on netmaker network
 MANAGE_DNS=false
+# set to true, old acl is supported, otherwise, old acl is disabled
+OLD_ACL_SUPPORT=true

+ 8 - 0
servercfg/serverconf.go

@@ -664,6 +664,14 @@ func GetManageDNS() bool {
 	return enabled
 }
 
+func IsOldAclEnabled() bool {
+	enabled := true
+	if os.Getenv("OLD_ACL_SUPPORT") != "" {
+		enabled = os.Getenv("OLD_ACL_SUPPORT") == "true"
+	}
+	return enabled
+}
+
 // GetDefaultDomain - get the default domain
 func GetDefaultDomain() string {
 	//default netmaker.hosted