adding logic for key checks, OS on server

This commit is contained in:
afeiszli
2022-02-04 14:19:26 -05:00
parent 3248717585
commit 2cbf08ad1e
7 changed files with 42 additions and 26 deletions

View File

@@ -175,8 +175,10 @@ func ValidateNode(node *models.Node, isUpdate bool) error {
if isUpdate {
return true
}
unique, _ := isMacAddressUnique(node.MacAddress, node.Network)
isFieldUnique, _ := IsNodeIDUnique(node)
return isFieldUnique
return isFieldUnique && unique
})
_ = v.RegisterValidation("network_exists", func(fl validator.FieldLevel) bool {
_, err := GetNetworkByNode(node)
@@ -592,3 +594,23 @@ func validateServer(currentNode, newNode *models.Node) bool {
newNode.ListenPort == currentNode.ListenPort &&
newNode.IsServer == "yes")
}
// isMacAddressUnique - checks if mac is unique
func isMacAddressUnique(macaddress string, networkName string) (bool, error) {
isunique := true
nodes, err := GetNetworkNodes(networkName)
if err != nil {
return database.IsEmptyRecord(err), err
}
for _, node := range nodes {
if node.MacAddress == macaddress {
isunique = false
}
}
return isunique, nil
}