dabfc128b3
- 3389远程页 + guacd 侧车 WebSocket 桥(无 RDP 会话审计) - 文件推送完成独立提示音,至少一台成功即播放 - 子机列表展开 CPU/内存/磁盘 sparkline 与指标采样落库 - 终端全量服务器列表、连接中状态;告警 Telegram 公网 IP - SSH 密钥凭据 UI 简化;子机搜索未设路径筛选 Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
"""RDP browser (guacd) configuration helpers."""
|
|
|
|
from server.domain.models import Server
|
|
from server.infrastructure.database.crypto import encrypt_value
|
|
from server.utils.rdp_config import (
|
|
apply_rdp_payload,
|
|
build_guacamole_connect_string,
|
|
get_rdp_config,
|
|
get_rdp_password_plain,
|
|
)
|
|
|
|
|
|
def test_get_rdp_config_defaults():
|
|
server = Server(name="win", domain="10.0.0.1", port=22, username="root")
|
|
cfg = get_rdp_config(server)
|
|
assert cfg.enabled is False
|
|
assert cfg.port == 3389
|
|
assert cfg.username == ""
|
|
assert cfg.password_set is False
|
|
|
|
|
|
def test_apply_rdp_payload_merges_extra_attrs():
|
|
payload = {
|
|
"rdp_enabled": True,
|
|
"rdp_port": 3390,
|
|
"rdp_username": "Administrator",
|
|
"rdp_password": "Secret123",
|
|
}
|
|
apply_rdp_payload(payload, existing_extra={"files_elevation": "auto_sudo"})
|
|
assert payload["extra_attrs"]["rdp_enabled"] is True
|
|
assert payload["extra_attrs"]["rdp_port"] == 3390
|
|
assert payload["extra_attrs"]["rdp_username"] == "Administrator"
|
|
assert payload["extra_attrs"]["rdp_password"]
|
|
assert payload["extra_attrs"]["files_elevation"] == "auto_sudo"
|
|
assert "rdp_password" not in payload
|
|
|
|
|
|
def test_get_rdp_password_plain_roundtrip():
|
|
server = Server(
|
|
name="win",
|
|
domain="10.0.0.2",
|
|
port=22,
|
|
username="root",
|
|
extra_attrs={"rdp_password": encrypt_value("pw")},
|
|
)
|
|
assert get_rdp_password_plain(server) == "pw"
|
|
|
|
|
|
def test_build_guacamole_connect_string():
|
|
s = build_guacamole_connect_string("192.168.1.10", 3389, "Admin", "pw")
|
|
assert "hostname=192.168.1.10" in s
|
|
assert "port=3389" in s
|
|
assert "username=Admin" in s
|
|
assert "password=pw" in s
|
|
assert "ignore-cert=true" in s
|