new changes
This commit is contained in:
@@ -20,6 +20,38 @@ class CreateFirewallRuleRequest(BaseModel):
|
||||
ps: str = ""
|
||||
|
||||
|
||||
@router.get("/status")
|
||||
async def firewall_backend_status(current_user: User = Depends(get_current_user)):
|
||||
"""UFW and firewalld presence/state for the Security UI (read-only)."""
|
||||
ufw_out, _ = exec_shell_sync("ufw status 2>/dev/null", timeout=5)
|
||||
ufw_text = (ufw_out or "").strip()
|
||||
ufw_detected = bool(ufw_text) and "Status:" in ufw_text
|
||||
ufw_active: bool | None = None
|
||||
if ufw_detected:
|
||||
if "Status: active" in ufw_text:
|
||||
ufw_active = True
|
||||
elif "Status: inactive" in ufw_text:
|
||||
ufw_active = False
|
||||
|
||||
fw_state_out, _ = exec_shell_sync("firewall-cmd --state 2>/dev/null", timeout=5)
|
||||
fw_line = (fw_state_out or "").strip().lower()
|
||||
firewalld_running = fw_line == "running"
|
||||
firewalld_detected = fw_line in ("running", "not running")
|
||||
|
||||
return {
|
||||
"ufw": {
|
||||
"detected": ufw_detected,
|
||||
"active": ufw_active,
|
||||
"summary_line": ufw_text.split("\n")[0] if ufw_text else "",
|
||||
},
|
||||
"firewalld": {
|
||||
"detected": firewalld_detected,
|
||||
"running": firewalld_running,
|
||||
"state": fw_line or None,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@router.get("/list")
|
||||
async def firewall_list(
|
||||
current_user: User = Depends(get_current_user),
|
||||
|
||||
Reference in New Issue
Block a user