mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-08 22:24:17 +08:00
validate relay req for inet gws
This commit is contained in:
parent
6f61f8abcc
commit
d69d0ed2e2
4 changed files with 19 additions and 0 deletions
|
@ -645,6 +645,17 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|
||||||
}
|
}
|
||||||
relayUpdate := logic.RelayUpdates(¤tNode, newNode)
|
relayUpdate := logic.RelayUpdates(¤tNode, newNode)
|
||||||
|
if relayUpdate && newNode.IsRelay {
|
||||||
|
err = logic.ValidateRelay(models.RelayRequest{
|
||||||
|
NodeID: newNode.ID.String(),
|
||||||
|
NetID: newNode.Network,
|
||||||
|
RelayedNodes: newNode.RelayedNodes,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
_, err = logic.GetHost(newNode.HostID.String())
|
_, err = logic.GetHost(newNode.HostID.String())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(0, r.Header.Get("user"),
|
logger.Log(0, r.Header.Get("user"),
|
||||||
|
|
|
@ -28,3 +28,7 @@ var SetRelayedNodes = func(setRelayed bool, relay string, relayed []string) []mo
|
||||||
var RelayUpdates = func(currentNode, newNode *models.Node) bool {
|
var RelayUpdates = func(currentNode, newNode *models.Node) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var ValidateRelay = func(relay models.RelayRequest) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
@ -101,6 +101,7 @@ func InitPro() {
|
||||||
logic.UpdateRelayed = proLogic.UpdateRelayed
|
logic.UpdateRelayed = proLogic.UpdateRelayed
|
||||||
logic.SetRelayedNodes = proLogic.SetRelayedNodes
|
logic.SetRelayedNodes = proLogic.SetRelayedNodes
|
||||||
logic.RelayUpdates = proLogic.RelayUpdates
|
logic.RelayUpdates = proLogic.RelayUpdates
|
||||||
|
logic.ValidateRelay = proLogic.ValidateRelay
|
||||||
logic.GetTrialEndDate = getTrialEndDate
|
logic.GetTrialEndDate = getTrialEndDate
|
||||||
logic.SetDefaultGw = proLogic.SetDefaultGw
|
logic.SetDefaultGw = proLogic.SetDefaultGw
|
||||||
logic.SetDefaultGwForRelayedUpdate = proLogic.SetDefaultGwForRelayedUpdate
|
logic.SetDefaultGwForRelayedUpdate = proLogic.SetDefaultGwForRelayedUpdate
|
||||||
|
|
|
@ -119,6 +119,9 @@ func ValidateRelay(relay models.RelayRequest) error {
|
||||||
if relayedNode.IsIngressGateway {
|
if relayedNode.IsIngressGateway {
|
||||||
return errors.New("cannot relay an ingress gateway (" + relayedNodeID + ")")
|
return errors.New("cannot relay an ingress gateway (" + relayedNodeID + ")")
|
||||||
}
|
}
|
||||||
|
if relayedNode.IsInternetGateway {
|
||||||
|
return errors.New("cannot relay an internet gateway (" + relayedNodeID + ")")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue