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)
|
||||
}
|
||||
|
||||
// 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
|
||||
func DeleteKey(network models.Network, i int) {
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ import (
|
|||
|
||||
"github.com/go-playground/validator/v10"
|
||||
"github.com/gravitl/netmaker/database"
|
||||
"github.com/gravitl/netmaker/functions"
|
||||
"github.com/gravitl/netmaker/models"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
@ -37,8 +36,8 @@ func HasAdmin() (bool, error) {
|
|||
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
|
||||
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
|
||||
user.Password = string(hash)
|
||||
|
||||
tokenString, _ := functions.CreateUserJWT(user.UserName, user.Networks, user.IsAdmin)
|
||||
tokenString, _ := CreateUserJWT(user.UserName, user.Networks, user.IsAdmin)
|
||||
|
||||
if tokenString == "" {
|
||||
// returnErrorResponse(w, r, errorResponse)
|
||||
|
@ -149,7 +148,7 @@ func VerifyAuthRequest(authRequest models.UserAuthParams) (string, error) {
|
|||
}
|
||||
|
||||
//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
|
||||
}
|
||||
|
||||
|
|
|
@ -88,6 +88,35 @@ func UniqueAddress(networkName string) (string, error) {
|
|||
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
|
||||
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.")
|
||||
}
|
||||
|
||||
// // 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
|
||||
func GetNetwork(networkname string) (models.Network, error) {
|
||||
|
|
Loading…
Add table
Reference in a new issue