| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | package aclimport (	"fmt"	"log"	"github.com/gravitl/netmaker/cli/functions"	"github.com/gravitl/netmaker/logic/acls"	"github.com/spf13/cobra")var aclDenyCmd = &cobra.Command{	Use:   "deny [NETWORK NAME] [NODE_1_ID] [NODE_2_ID]",	Args:  cobra.ExactArgs(3),	Short: "Deny access from one node to another",	Long:  `Deny access from one node to another`,	Run: func(cmd *cobra.Command, args []string) {		network := args[0]		fromNodeID := args[1]		toNodeID := args[2]		if fromNodeID == toNodeID {			log.Fatal("Cannot deny access to self")		}		// get current acls		res := functions.GetACL(network)		if res == nil {			log.Fatalf("Could not load network ACLs")		}		payload := *res		if _, ok := payload[acls.AclID(fromNodeID)]; !ok {			log.Fatalf("Node [%s] does not exist", fromNodeID)		}		if _, ok := payload[acls.AclID(toNodeID)]; !ok {			log.Fatalf("Node [%s] does not exist", toNodeID)		}		// update acls		payload[acls.AclID(fromNodeID)][acls.AclID(toNodeID)] = acls.NotAllowed		payload[acls.AclID(toNodeID)][acls.AclID(fromNodeID)] = acls.NotAllowed		functions.UpdateACL(network, &payload)		fmt.Println("Success")	},}func init() {	rootCmd.AddCommand(aclDenyCmd)}
 |