diff --git a/admin/css/webdecoy-admin.css b/admin/css/webdecoy-admin.css index d0544f4..f1f9af3 100644 --- a/admin/css/webdecoy-admin.css +++ b/admin/css/webdecoy-admin.css @@ -322,6 +322,71 @@ color: #721c24; } +/* Network-block badge (rows auto-synced from WebDecoy network intelligence). */ +.webdecoy-badge-network { + background: #e7f0fb; + color: #1e50a0; +} + +/* Actor-intel "Known" badge on the Detections list. */ +.webdecoy-badge-known { + background: #fbeaea; + color: #a02222; +} + +/* ========================================================================== + Actor Intel column (Detections) + ========================================================================== */ + +.column-intel { width: 200px; } + +.webdecoy-intel-locked { + color: #a7aaad; + font-size: 16px; + width: 16px; + height: 16px; +} + +.webdecoy-intel-na, +.webdecoy-intel-new { + color: #646970; +} + +.webdecoy-intel-known { + display: inline-flex; + flex-wrap: wrap; + align-items: center; + gap: 4px; +} + +.webdecoy-intel-meta { + font-size: 11px; + color: #646970; +} + +.webdecoy-chip { + display: inline-block; + font-size: 10px; + line-height: 1.6; + padding: 1px 6px; + border-radius: 3px; + background: #f0f0f0; + color: #3c434a; +} + +.webdecoy-chip-alert { + background: #fbeaea; + color: #a02222; +} + +/* ========================================================================== + Post-CRITICAL moment notice + ========================================================================== */ + +.webdecoy-critical-moment .button { + margin-top: 4px; +} + /* ========================================================================== Filters & Actions Bar ========================================================================== */ diff --git a/admin/partials/blocked-ips-page.php b/admin/partials/blocked-ips-page.php index 401eef6..867c8bb 100644 --- a/admin/partials/blocked-ips-page.php +++ b/admin/partials/blocked-ips-page.php @@ -134,7 +134,15 @@ - + + + + + + + + + get_options() : []; + $wd_intel_key = isset($wd_intel_options['api_key']) ? (string) $wd_intel_options['api_key'] : ''; + if ($wd_intel_key !== '') { + $wd_page_ips = []; + foreach ($detections as $wd_row) { + if (!empty($wd_row['ip_address'])) { + $wd_page_ips[] = (string) $wd_row['ip_address']; + } + } + $wd_intel_client = new WebDecoy_Actor_Intel($wd_intel_key); + $wd_intel_map = $wd_intel_client->lookup($wd_page_ips); + } +} ?>
@@ -241,6 +262,7 @@ class="button "> + @@ -330,6 +352,58 @@ class="button "> + + + + + + + + + + + 0) : ?> + + + + + 0) : ?> + + + + + + + + + + + + 0) : ?> + + + + + + + + + @@ -359,7 +433,7 @@ class="button button-small"> - +
diff --git a/admin/partials/settings-page.php b/admin/partials/settings-page.php index 54f2fc2..9e07b17 100644 --- a/admin/partials/settings-page.php +++ b/admin/partials/settings-page.php @@ -756,7 +756,7 @@

- +