<h1>Security Alerts</h1>

<% if (forbidden) { %>
  <div class="alert alert-danger">Your role does not have permission to view security alerts.</div>
<% } else { %>

<% if (scanResult) { %><div class="alert alert-ok"><%= scanResult %></div><% } %>

<div class="card" style="display:flex;justify-content:space-between;align-items:center">
  <form method="get" action="/security-alerts" style="display:flex;gap:8px;align-items:center">
    <select name="status" onchange="this.form.submit()">
      <option value="" <%= !query.status ? 'selected' : '' %>>All</option>
      <option value="open" <%= query.status === 'open' ? 'selected' : '' %>>Open</option>
      <option value="acknowledged" <%= query.status === 'acknowledged' ? 'selected' : '' %>>Acknowledged</option>
      <option value="resolved" <%= query.status === 'resolved' ? 'selected' : '' %>>Resolved</option>
    </select>
  </form>
  <div style="display:flex;gap:8px">
    <form method="post" action="/security-alerts/scan"><button class="btn" type="submit">Run Login-Anomaly Scan</button></form>
    <form method="post" action="/security-alerts/threat-scan"><button class="btn" type="submit">Run Threat Scan</button></form>
  </div>
</div>

<div class="card">
  <table>
    <thead><tr><th>Type</th><th>Severity</th><th>Summary</th><th>Status</th><th>Detected</th><th></th></tr></thead>
    <tbody>
      <% for (const a of alerts) { %>
      <tr>
        <td><%= a.alert_type %></td>
        <td><span class="badge <%= { low: 'badge-ok', medium: 'badge-warn', high: 'badge-danger', critical: 'badge-danger' }[a.severity] %>"><%= a.severity %></span></td>
        <td><%= a.summary %></td>
        <td><span class="badge <%= { open: 'badge-danger', acknowledged: 'badge-warn', resolved: 'badge-ok' }[a.status] %>"><%= a.status %></span></td>
        <td><%= new Date(a.created_at).toLocaleString() %></td>
        <td style="display:flex;gap:8px">
          <% if (a.status === 'open') { %><form method="post" action="/security-alerts/<%= a.id %>/acknowledge"><button class="link-btn" type="submit">Acknowledge</button></form><% } %>
          <% if (a.status !== 'resolved') { %><form method="post" action="/security-alerts/<%= a.id %>/resolve"><button class="link-btn" type="submit">Resolve</button></form><% } %>
        </td>
      </tr>
      <% } %>
      <% if (!alerts.length) { %><tr><td colspan="6" style="color:var(--muted)">No alerts. Run a scan to check for failed-login spikes and locked accounts.</td></tr><% } %>
    </tbody>
  </table>
</div>

<% if (threatConfig) { %>
<div class="card" style="max-width:520px">
  <h2 style="font-size:15px;margin-top:0">Threat Detection Thresholds</h2>
  <p style="color:var(--muted);font-size:12px;margin:0 0 12px">
    "Run Threat Scan" above checks API-abuse spikes, data-exfiltration signals, and privilege-escalation attempts
    against these thresholds. Login-anomaly detection (locked accounts, failed-login spikes) has no threshold here — see "Run Login-Anomaly Scan".
  </p>
  <form method="post" action="/security-alerts/threat-config">
    <div style="display:flex;gap:12px">
      <div style="flex:1"><label>API abuse: multiplier over baseline</label><input type="number" step="0.1" name="apiAbuseMultiplier" value="<%= threatConfig.api_abuse_multiplier %>"></div>
      <div style="flex:1"><label>API abuse: minimum calls/hr</label><input type="number" name="apiAbuseMinCalls" value="<%= threatConfig.api_abuse_min_calls %>"></div>
    </div>
    <div style="display:flex;gap:12px">
      <div style="flex:1"><label>Exfiltration: multiplier over baseline</label><input type="number" step="0.1" name="exfiltrationMultiplier" value="<%= threatConfig.exfiltration_multiplier %>"></div>
      <div style="flex:1"><label>Exfiltration: minimum calls/hr</label><input type="number" name="exfiltrationMinCalls" value="<%= threatConfig.exfiltration_min_calls %>"></div>
    </div>
    <label>Privilege escalation: denials/hour to flag</label>
    <input type="number" name="privilegeEscalationThreshold" value="<%= threatConfig.privilege_escalation_threshold %>">
    <button class="btn" type="submit" style="width:100%;margin-top:16px">Save Thresholds</button>
  </form>
</div>
<% } %>

<% } %>
