Prechádzať zdrojové kódy

use network name for user roles and groups

abhishek9686 9 mesiacov pred
rodič
commit
33a6b85cd0

+ 2 - 0
controllers/dns_test.go

@@ -1,6 +1,7 @@
 package controller
 
 import (
+	"fmt"
 	"net"
 	"os"
 	"testing"
@@ -440,6 +441,7 @@ func createHost() {
 func deleteAllDNS(t *testing.T) {
 	dns, err := logic.GetAllDNS()
 	assert.Nil(t, err)
+	fmt.Println("=====> DNS RECORDS ", dns)
 	for _, record := range dns {
 		err := logic.DeleteDNS(record.Name, record.Network)
 		assert.Nil(t, err)

+ 8 - 24
controllers/network_test.go

@@ -46,10 +46,8 @@ func TestCreateNetwork(t *testing.T) {
 	deleteAllNetworks()
 
 	var network models.Network
-	network.NetID = "skynet1"
+	network.Name = "skynet1"
 	network.AddressRange = "10.10.0.1/24"
-	// if tests break - check here (removed displayname)
-	//network.DisplayName = "mynetwork"
 
 	_, err := logic.CreateNetwork(network)
 	assert.Nil(t, err)
@@ -115,7 +113,7 @@ func TestValidateNetwork(t *testing.T) {
 		{
 			testname: "InvalidAddress",
 			network: models.Network{
-				NetID:        "skynet",
+				Name:         "skynet",
 				AddressRange: "10.0.0.256",
 			},
 			errMessage: "Field validation for 'AddressRange' failed on the 'cidrv4' tag",
@@ -123,29 +121,15 @@ func TestValidateNetwork(t *testing.T) {
 		{
 			testname: "InvalidAddress6",
 			network: models.Network{
-				NetID:         "skynet1",
+				Name:          "skynet1",
 				AddressRange6: "2607::ffff/130",
 			},
 			errMessage: "Field validation for 'AddressRange6' failed on the 'cidrv6' tag",
 		},
-		{
-			testname: "InvalidNetID",
-			network: models.Network{
-				NetID: "with spaces",
-			},
-			errMessage: "Field validation for 'NetID' failed on the 'netid_valid' tag",
-		},
-		{
-			testname: "NetIDTooLong",
-			network: models.Network{
-				NetID: "LongNetIDNameForMaxCharactersTest",
-			},
-			errMessage: "Field validation for 'NetID' failed on the 'max' tag",
-		},
 		{
 			testname: "ListenPortTooLow",
 			network: models.Network{
-				NetID:             "skynet",
+				Name:              "skynet",
 				DefaultListenPort: 1023,
 			},
 			errMessage: "Field validation for 'DefaultListenPort' failed on the 'min' tag",
@@ -153,7 +137,7 @@ func TestValidateNetwork(t *testing.T) {
 		{
 			testname: "ListenPortTooHigh",
 			network: models.Network{
-				NetID:             "skynet",
+				Name:              "skynet",
 				DefaultListenPort: 65536,
 			},
 			errMessage: "Field validation for 'DefaultListenPort' failed on the 'max' tag",
@@ -161,7 +145,7 @@ func TestValidateNetwork(t *testing.T) {
 		{
 			testname: "KeepAliveTooBig",
 			network: models.Network{
-				NetID:            "skynet",
+				Name:             "skynet",
 				DefaultKeepalive: 1010,
 			},
 			errMessage: "Field validation for 'DefaultKeepalive' failed on the 'max' tag",
@@ -207,9 +191,9 @@ func deleteAllNetworks() {
 
 func createNet() {
 	var network models.Network
-	network.NetID = "skynet"
+	network.Name = "skynet"
 	network.AddressRange = "10.0.0.1/24"
-	_, err := logic.GetNetwork("skynet")
+	_, err := logic.GetNetworkByName("skynet")
 	if err != nil {
 		logic.CreateNetwork(network)
 	}

+ 1 - 1
logic/dns.go

@@ -188,7 +188,7 @@ func GetAllDNS() ([]models.DNSEntry, error) {
 		return []models.DNSEntry{}, err
 	}
 	for _, net := range networks {
-		netdns, err := GetDNS(net.NetID)
+		netdns, err := GetDNS(net.Name)
 		if err != nil {
 			return []models.DNSEntry{}, nil
 		}

+ 21 - 3
logic/networks.go

@@ -524,16 +524,34 @@ func UpsertNetwork(net *models.Network) error {
 	return nil
 }
 
+func GetNetworkByName(name string) (network models.Network, err error) {
+	networksData, err := database.FetchRecords(database.NETWORKS_TABLE_NAME)
+	if err != nil {
+		return network, err
+	}
+	for _, networkData := range networksData {
+
+		if err = json.Unmarshal([]byte(networkData), &network); err != nil {
+			return models.Network{}, err
+		}
+		if network.Name == name {
+			return network, nil
+		}
+
+	}
+	return network, errors.New("network not found")
+}
+
 // GetNetwork - gets a network from database
-func GetNetwork(networkname string) (models.Network, error) {
+func GetNetwork(networkID string) (models.Network, error) {
 
 	var network models.Network
 	if servercfg.CacheEnabled() {
-		if network, ok := getNetworkFromCache(networkname); ok {
+		if network, ok := getNetworkFromCache(networkID); ok {
 			return network, nil
 		}
 	}
-	networkData, err := database.FetchRecord(database.NETWORKS_TABLE_NAME, networkname)
+	networkData, err := database.FetchRecord(database.NETWORKS_TABLE_NAME, networkID)
 	if err != nil {
 		return network, err
 	}

+ 8 - 4
pro/logic/user_mgmt.go

@@ -143,9 +143,13 @@ func CreateDefaultNetworkRolesAndGroups(netID models.NetworkID) {
 	if netID.String() == "" {
 		return
 	}
+	network, err := logic.GetNetwork(netID.String())
+	if err != nil {
+		return
+	}
 	var NetworkAdminPermissionTemplate = models.UserRolePermissionTemplate{
 		ID:                 models.UserRoleID(fmt.Sprintf("%s-%s", netID, models.NetworkAdmin)),
-		Name:               fmt.Sprintf("%s Admin", netID),
+		Name:               fmt.Sprintf("%s Admin", network.Name),
 		MetaData:           fmt.Sprintf("can manage your network `%s` configuration.", netID),
 		Default:            true,
 		NetworkID:          netID,
@@ -155,7 +159,7 @@ func CreateDefaultNetworkRolesAndGroups(netID models.NetworkID) {
 
 	var NetworkUserPermissionTemplate = models.UserRolePermissionTemplate{
 		ID:                  models.UserRoleID(fmt.Sprintf("%s-%s", netID, models.NetworkUser)),
-		Name:                fmt.Sprintf("%s User", netID),
+		Name:                fmt.Sprintf("%s User", network.Name),
 		MetaData:            fmt.Sprintf("cannot access the admin console, but can connect to nodes in your network `%s` via Remote Access Client.", netID),
 		Default:             true,
 		FullAccess:          false,
@@ -217,7 +221,7 @@ func CreateDefaultNetworkRolesAndGroups(netID models.NetworkID) {
 	// create default network groups
 	var NetworkAdminGroup = models.UserGroup{
 		ID:   models.UserGroupID(fmt.Sprintf("%s-%s-grp", netID, models.NetworkAdmin)),
-		Name: fmt.Sprintf("%s Admin Group", netID),
+		Name: fmt.Sprintf("%s Admin Group", network.Name),
 		NetworkRoles: map[models.NetworkID]map[models.UserRoleID]struct{}{
 			netID: {
 				models.UserRoleID(fmt.Sprintf("%s-%s", netID, models.NetworkAdmin)): {},
@@ -227,7 +231,7 @@ func CreateDefaultNetworkRolesAndGroups(netID models.NetworkID) {
 	}
 	var NetworkUserGroup = models.UserGroup{
 		ID:   models.UserGroupID(fmt.Sprintf("%s-%s-grp", netID, models.NetworkUser)),
-		Name: fmt.Sprintf("%s User Group", netID),
+		Name: fmt.Sprintf("%s User Group", network.Name),
 		NetworkRoles: map[models.NetworkID]map[models.UserRoleID]struct{}{
 			netID: {
 				models.UserRoleID(fmt.Sprintf("%s-%s", netID, models.NetworkUser)): {},