Browse Source

rebased on develop

0xdcarns 3 years ago
parent
commit
7ddf36520a
3 changed files with 42 additions and 50 deletions
  1. 0 29
      functions/helpers.go
  2. 4 5
      logic/auth.go
  3. 38 16
      logic/networks.go

+ 0 - 29
functions/helpers.go

@@ -433,35 +433,6 @@ func GenKeyName() string {
 	return "key" + string(b)
 	return "key" + string(b)
 }
 }
 
 
-// IsIPUnique - checks if an IP is unique
-func IsIPUnique(network string, ip string, tableName string, isIpv6 bool) bool {
-
-	isunique := true
-	collection, err := database.FetchRecords(tableName)
-
-	if err != nil {
-		return isunique
-	}
-
-	for _, value := range collection { // filter
-		var node models.Node
-		if err = json.Unmarshal([]byte(value), &node); err != nil {
-			continue
-		}
-		if isIpv6 {
-			if node.Address6 == ip && node.Network == network {
-				return false
-			}
-		} else {
-			if node.Address == ip && node.Network == network {
-				return false
-			}
-		}
-	}
-
-	return isunique
-}
-
 // DeleteKey - deletes a key
 // DeleteKey - deletes a key
 func DeleteKey(network models.Network, i int) {
 func DeleteKey(network models.Network, i int) {
 
 

+ 4 - 5
logic/auth.go

@@ -7,7 +7,6 @@ import (
 
 
 	"github.com/go-playground/validator/v10"
 	"github.com/go-playground/validator/v10"
 	"github.com/gravitl/netmaker/database"
 	"github.com/gravitl/netmaker/database"
-	"github.com/gravitl/netmaker/functions"
 	"github.com/gravitl/netmaker/models"
 	"github.com/gravitl/netmaker/models"
 	"golang.org/x/crypto/bcrypt"
 	"golang.org/x/crypto/bcrypt"
 )
 )
@@ -37,8 +36,8 @@ func HasAdmin() (bool, error) {
 	return false, err
 	return false, err
 }
 }
 
 
-// GetUser - gets a user
-func GetUser(username string) (models.ReturnUser, error) {
+// GetReturnUser - gets a user
+func GetReturnUser(username string) (models.ReturnUser, error) {
 
 
 	var user models.ReturnUser
 	var user models.ReturnUser
 	record, err := database.FetchRecord(database.USERS_TABLE_NAME, username)
 	record, err := database.FetchRecord(database.USERS_TABLE_NAME, username)
@@ -94,7 +93,7 @@ func CreateUser(user models.User) (models.User, error) {
 	// set password to encrypted password
 	// set password to encrypted password
 	user.Password = string(hash)
 	user.Password = string(hash)
 
 
-	tokenString, _ := functions.CreateUserJWT(user.UserName, user.Networks, user.IsAdmin)
+	tokenString, _ := CreateUserJWT(user.UserName, user.Networks, user.IsAdmin)
 
 
 	if tokenString == "" {
 	if tokenString == "" {
 		// returnErrorResponse(w, r, errorResponse)
 		// returnErrorResponse(w, r, errorResponse)
@@ -149,7 +148,7 @@ func VerifyAuthRequest(authRequest models.UserAuthParams) (string, error) {
 	}
 	}
 
 
 	//Create a new JWT for the node
 	//Create a new JWT for the node
-	tokenString, _ := functions.CreateUserJWT(authRequest.UserName, result.Networks, result.IsAdmin)
+	tokenString, _ := CreateUserJWT(authRequest.UserName, result.Networks, result.IsAdmin)
 	return tokenString, nil
 	return tokenString, nil
 }
 }
 
 

+ 38 - 16
logic/networks.go

@@ -88,6 +88,35 @@ func UniqueAddress(networkName string) (string, error) {
 	return "W1R3: NO UNIQUE ADDRESSES AVAILABLE", err1
 	return "W1R3: NO UNIQUE ADDRESSES AVAILABLE", err1
 }
 }
 
 
+// IsIPUnique - checks if an IP is unique
+func IsIPUnique(network string, ip string, tableName string, isIpv6 bool) bool {
+
+	isunique := true
+	collection, err := database.FetchRecords(tableName)
+
+	if err != nil {
+		return isunique
+	}
+
+	for _, value := range collection { // filter
+		var node models.Node
+		if err = json.Unmarshal([]byte(value), &node); err != nil {
+			continue
+		}
+		if isIpv6 {
+			if node.Address6 == ip && node.Network == network {
+				return false
+			}
+		} else {
+			if node.Address == ip && node.Network == network {
+				return false
+			}
+		}
+	}
+
+	return isunique
+}
+
 // UniqueAddress6 - see if ipv6 address is unique
 // UniqueAddress6 - see if ipv6 address is unique
 func UniqueAddress6(networkName string) (string, error) {
 func UniqueAddress6(networkName string) (string, error) {
 
 
@@ -315,22 +344,15 @@ func UpdateNetwork(currentNetwork *models.Network, newNetwork *models.Network) (
 	return false, false, errors.New("failed to update network " + newNetwork.NetID + ", cannot change netid.")
 	return false, false, errors.New("failed to update network " + newNetwork.NetID + ", cannot change netid.")
 }
 }
 
 
-// // SetNetworkNodesLastModified - sets network nodes last modified time
-// func SetNetworkNodesLastModified(network *models.Network) error {
-
-// 	timestamp := time.Now().Unix()
-
-// 	network.NodesLastModified = timestamp
-// 	data, err := json.Marshal(&network)
-// 	if err != nil {
-// 		return err
-// 	}
-// 	err = database.Insert(network.NetID, string(data), database.NETWORKS_TABLE_NAME)
-// 	if err != nil {
-// 		return err
-// 	}
-// 	return nil
-// }
+// Inc - increments an IP
+func Inc(ip net.IP) {
+	for j := len(ip) - 1; j >= 0; j-- {
+		ip[j]++
+		if ip[j] > 0 {
+			break
+		}
+	}
+}
 
 
 // GetNetwork - gets a network from database
 // GetNetwork - gets a network from database
 func GetNetwork(networkname string) (models.Network, error) {
 func GetNetwork(networkname string) (models.Network, error) {