feat: RDG 302/303 display path labels and RDS session break (0.3.1)
Show RDS access via RDG-Comp or Haproxy-RDG-Comp, enable qwinsta/logoff on any RDG event with internal_ip. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -10,7 +10,8 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from app.models import AgentCommand, Event, Host
|
||||
from app.services.rdg_client_host import ClientWorkstationNotFoundError, resolve_client_workstation
|
||||
from app.services.rdg_session_flap import event_has_rdg_flap, event_internal_ip, resolve_rdg_flap_summary
|
||||
from app.services.rdg_display import event_supports_rdg_client_qwinsta
|
||||
from app.services.rdg_session_flap import event_internal_ip
|
||||
from app.services.win_admin_settings import get_effective_win_admin_config
|
||||
from app.services.winrm_connect import (
|
||||
WinRmCmdResult,
|
||||
@@ -30,13 +31,13 @@ def _require_win_admin(db: Session):
|
||||
return cfg
|
||||
|
||||
|
||||
def _require_rdg_flap(db: Session, event: Event) -> None:
|
||||
flap, _, qwinsta_id = resolve_rdg_flap_summary(db, event)
|
||||
if flap and qwinsta_id == event.id:
|
||||
def _require_rdg_client_qwinsta(event: Event) -> None:
|
||||
if event_supports_rdg_client_qwinsta(event):
|
||||
return
|
||||
if event_has_rdg_flap(event):
|
||||
return
|
||||
raise HTTPException(status_code=400, detail="Event is not flagged as RDG session flap")
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
detail="Event is not an RD Gateway connection with internal_ip (client workstation)",
|
||||
)
|
||||
|
||||
|
||||
def _resolve_client(db: Session, event: Event) -> Host:
|
||||
@@ -91,7 +92,7 @@ def _persist_command(
|
||||
|
||||
|
||||
def execute_qwinsta_via_winrm(db: Session, event: Event, *, requested_by: str) -> AgentCommand:
|
||||
_require_rdg_flap(db, event)
|
||||
_require_rdg_client_qwinsta(event)
|
||||
cfg = _require_win_admin(db)
|
||||
client_host = _resolve_client(db, event)
|
||||
|
||||
@@ -134,7 +135,7 @@ def execute_logoff_via_winrm(
|
||||
session_id: int,
|
||||
requested_by: str,
|
||||
) -> AgentCommand:
|
||||
_require_rdg_flap(db, event)
|
||||
_require_rdg_client_qwinsta(event)
|
||||
cfg = _require_win_admin(db)
|
||||
client_host = _resolve_client(db, event)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user