You've already forked caddy-opnsense-blocker
Add on-demand IP investigation and richer IP details
This commit is contained in:
@@ -43,6 +43,14 @@ func TestHandlerServesOverviewAndManualActions(t *testing.T) {
|
||||
t.Fatalf("unexpected recorded action: %q", app.lastAction)
|
||||
}
|
||||
|
||||
recorder = httptest.NewRecorder()
|
||||
request = httptest.NewRequest(http.MethodPost, "/api/ips/203.0.113.10/investigate", strings.NewReader(`{"actor":"tester"}`))
|
||||
request.Header.Set("Content-Type", "application/json")
|
||||
handler.ServeHTTP(recorder, request)
|
||||
if recorder.Code != http.StatusOK {
|
||||
t.Fatalf("unexpected investigate status: %d body=%s", recorder.Code, recorder.Body.String())
|
||||
}
|
||||
|
||||
recorder = httptest.NewRecorder()
|
||||
request = httptest.NewRequest(http.MethodGet, "/", nil)
|
||||
handler.ServeHTTP(recorder, request)
|
||||
@@ -105,9 +113,16 @@ func (s *stubApp) GetIPDetails(context.Context, string) (model.IPDetails, error)
|
||||
RecentEvents: []model.Event{{ID: 1, ClientIP: "203.0.113.10", OccurredAt: now, Decision: model.DecisionActionBlock}},
|
||||
Decisions: []model.DecisionRecord{{ID: 1, IP: "203.0.113.10", Action: model.DecisionActionBlock, CreatedAt: now}},
|
||||
BackendActions: []model.OPNsenseAction{{ID: 1, IP: "203.0.113.10", Action: "block", Result: "added", CreatedAt: now}},
|
||||
OPNsense: model.OPNsenseStatus{Configured: true, Present: true, CheckedAt: now},
|
||||
Actions: model.ActionAvailability{CanUnblock: true},
|
||||
Investigation: &model.IPInvestigation{IP: "203.0.113.10", UpdatedAt: now},
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *stubApp) InvestigateIP(context.Context, string) (model.IPDetails, error) {
|
||||
return s.GetIPDetails(context.Background(), "203.0.113.10")
|
||||
}
|
||||
|
||||
func (s *stubApp) ForceBlock(_ context.Context, ip string, actor string, reason string) error {
|
||||
s.lastAction = "block:" + ip + ":" + actor + ":" + reason
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user