mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-06 05:04:27 +08:00
rebased on develop
This commit is contained in:
parent
8f72ecbaa0
commit
7ddf36520a
3 changed files with 42 additions and 50 deletions
|
@ -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) {
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue