功能:支持设备身份自动登录并直达桌面列表
变更详情:开机直进桌面列表——设备身份自动登录,移除登录页与退出登录入口 - 构造时以设备 SN 走演示认证,kConfig->kAuthenticating->kDesktopList 同步完成,开机不再显示登录页 - 列表页移除"退出登录"按钮(无登录概念无去向);管理菜单"退出终端"保留 - 登录页与认证代码保留,接平台正式认证后由 DesktopService 驱动恢复登录流程 - 已部署盒子并抓屏验证;文档与 MEMORY 同步
This commit is contained in:
1 parent
7fdcb53dd9
commit
85f64df1a5
6 files changed
+31
-26
No files matched your search
@@ -36,9 +36,19 @@ MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent) {
|
||||
|
||||
config_ = loadConfig();
|
||||
|
||||
// 开机永远进入登录页;会话只能由用户在桌面列表选择后启动。
|
||||
fsm_.transitionTo(State::kConfig, QStringLiteral("等待登录"));
|
||||
showLogin();
|
||||
// 开机直进桌面列表:当前无正式账号体系,设备身份(SN)即用户,自动登录。
|
||||
// 登录页代码保留——接入管理平台认证后,由 DesktopService 决定是否回到登录流程;
|
||||
// 会话只能由用户在桌面列表选择后启动。
|
||||
fsm_.transitionTo(State::kConfig, QStringLiteral("就绪"));
|
||||
const QString deviceUser = QString::fromStdString(config_.sn).trimmed();
|
||||
desktopService_.login(deviceUser.isEmpty() ? QStringLiteral("terminal") : deviceUser,
|
||||
QStringLiteral("kiosk"), [this](const AuthResult& result) {
|
||||
if (result.ok) {
|
||||
currentUser_ = result.displayName;
|
||||
}
|
||||
fsm_.transitionTo(State::kAuthenticating, QStringLiteral("自动登录"));
|
||||
fsm_.transitionTo(State::kDesktopList, QStringLiteral("请选择要进入的云桌面"));
|
||||
});
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow() {
|
||||
@@ -81,7 +91,6 @@ void MainWindow::setupUi() {
|
||||
|
||||
connect(list, &DesktopListPage::desktopSelected, this, &MainWindow::onDesktopSelected);
|
||||
connect(list, &DesktopListPage::editRequested, this, &MainWindow::onEditDesktopRequested);
|
||||
connect(list, &DesktopListPage::logoutRequested, this, &MainWindow::onLogoutRequested);
|
||||
|
||||
// 过场层:独立置顶窗口,盖住 moonlight-qt 启动期的小窗口闪烁与分辨率切换,
|
||||
// 首帧检测到后淡出。不属于 stack_(串流期间整个 kiosk 都被 moonlight 覆盖)。
|
||||
@@ -268,13 +277,6 @@ void MainWindow::onEditDesktopRequested(const QString& desktopId) {
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onLogoutRequested() {
|
||||
stopSessions();
|
||||
desktopService_.logout();
|
||||
currentUser_.clear();
|
||||
fsm_.transitionTo(State::kConfig, QStringLiteral("已退出登录"));
|
||||
}
|
||||
|
||||
void MainWindow::startMoonlightSession(const ConnectionTicket& ticket) {
|
||||
if (!fsm_.transitionTo(State::kConnecting, ticket.endpoint)) {
|
||||
return;
|
||||
|
||||
Reference in new issue
Block a user