|
@@ -204,20 +204,23 @@ func updateEgress(w http.ResponseWriter, r *http.Request) {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
var egressRange string
|
|
var egressRange string
|
|
- var cidrErr error
|
|
|
|
if !req.IsInetGw {
|
|
if !req.IsInetGw {
|
|
- egressRange, cidrErr = logic.NormalizeCIDR(req.Range)
|
|
|
|
- isDomain := logic.IsFQDN(req.Range)
|
|
|
|
- if cidrErr != nil && !isDomain {
|
|
|
|
- if cidrErr != nil {
|
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(cidrErr, "badrequest"))
|
|
|
|
- } else {
|
|
|
|
- logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("bad domain name"), "badrequest"))
|
|
|
|
|
|
+ if req.Range != "" {
|
|
|
|
+ var err error
|
|
|
|
+ egressRange, err = logic.NormalizeCIDR(req.Range)
|
|
|
|
+ if err != nil {
|
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
|
|
|
+ return
|
|
}
|
|
}
|
|
- return
|
|
|
|
}
|
|
}
|
|
- if isDomain {
|
|
|
|
- req.Domain = req.Range
|
|
|
|
|
|
+
|
|
|
|
+ if req.Domain != "" {
|
|
|
|
+ isDomain := logic.IsFQDN(req.Domain)
|
|
|
|
+ if !isDomain {
|
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("bad domain name"), "badrequest"))
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
egressRange = ""
|
|
egressRange = ""
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -233,12 +236,20 @@ func updateEgress(w http.ResponseWriter, r *http.Request) {
|
|
}
|
|
}
|
|
var updateNat bool
|
|
var updateNat bool
|
|
var updateStatus bool
|
|
var updateStatus bool
|
|
|
|
+ var resetDomain bool
|
|
|
|
+ var resetRange bool
|
|
if req.Nat != e.Nat {
|
|
if req.Nat != e.Nat {
|
|
updateNat = true
|
|
updateNat = true
|
|
}
|
|
}
|
|
if req.Status != e.Status {
|
|
if req.Status != e.Status {
|
|
updateStatus = true
|
|
updateStatus = true
|
|
}
|
|
}
|
|
|
|
+ if req.Domain == "" {
|
|
|
|
+ resetDomain = true
|
|
|
|
+ }
|
|
|
|
+ if req.Range == "" || egressRange == "" {
|
|
|
|
+ resetRange = true
|
|
|
|
+ }
|
|
event := &models.Event{
|
|
event := &models.Event{
|
|
Action: models.Update,
|
|
Action: models.Update,
|
|
Source: models.Subject{
|
|
Source: models.Subject{
|
|
@@ -294,6 +305,12 @@ func updateEgress(w http.ResponseWriter, r *http.Request) {
|
|
e.Status = req.Status
|
|
e.Status = req.Status
|
|
e.UpdateEgressStatus(db.WithContext(context.TODO()))
|
|
e.UpdateEgressStatus(db.WithContext(context.TODO()))
|
|
}
|
|
}
|
|
|
|
+ if resetDomain {
|
|
|
|
+ _ = e.ResetDomain(db.WithContext(context.TODO()))
|
|
|
|
+ }
|
|
|
|
+ if resetRange {
|
|
|
|
+ _ = e.ResetRange(db.WithContext(context.TODO()))
|
|
|
|
+ }
|
|
event.Diff.New = e
|
|
event.Diff.New = e
|
|
logic.LogEvent(event)
|
|
logic.LogEvent(event)
|
|
if req.Domain != "" {
|
|
if req.Domain != "" {
|