rebased on develop

This commit is contained in:
0xdcarns 2021-10-26 12:58:50 -04:00
parent 8f72ecbaa0
commit 7ddf36520a
3 changed files with 42 additions and 50 deletions

View file

@ -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) {

View file

@ -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 // GetReturnUser - gets a user
func GetUser(username string) (models.ReturnUser, error) { 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
} }

View file

@ -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 // Inc - increments an IP
// func SetNetworkNodesLastModified(network *models.Network) error { func Inc(ip net.IP) {
for j := len(ip) - 1; j >= 0; j-- {
// timestamp := time.Now().Unix() ip[j]++
if ip[j] > 0 {
// network.NodesLastModified = timestamp break
// 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
// }
// 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) {