From b1a4628480f1e9387ae5ac2c1bc298aaeab48abb Mon Sep 17 00:00:00 2001 From: root Date: Tue, 12 Dec 2023 14:29:36 +0800 Subject: [PATCH] Solve-the-user-switching-login-problem --- src/session-widgets/lockcontent.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/session-widgets/lockcontent.cpp b/src/session-widgets/lockcontent.cpp index 1325addc..9437c468 100644 --- a/src/session-widgets/lockcontent.cpp +++ b/src/session-widgets/lockcontent.cpp @@ -129,6 +129,17 @@ void LockContent::initConnections() { connect(m_model, &SessionBaseModel::currentUserChanged, this, &LockContent::onCurrentUserChanged); connect(m_controlWidget, &ControlWidget::requestSwitchUser, this, [this] { + // 在服务器版本中,如果没有用户登录,当点击切换用户时,直接切回到账户输入界面 + if (m_model->isServerModel() && m_model->loginedUserList().isEmpty()) { + std::shared_ptr user_ptr = m_model->findUserByName("..."); + + if (user_ptr) { + m_controlWidget->setUserSwitchEnable(false); + emit requestSwitchToUser(user_ptr); + return; + } + } + m_model->setCurrentModeState(SessionBaseModel::ModeStatus::UserMode); emit requestEndAuthentication(m_model->currentUser()->name(), AuthCommon::AT_All); }); @@ -304,6 +315,10 @@ void LockContent::onCurrentUserChanged(std::shared_ptr user) m_centerTopWidget->setCurrentUser(user.get()); m_logoWidget->updateLocale(locale); + // 在服务器版中,当没有用户登录时,在登录界面切换到之前登录过的用户时,显示切换用户按钮,供用户重新输入新的账户登录 + if (m_model->isServerModel() && user->type() == User::Native && m_model->loginedUserList().isEmpty()) { + m_controlWidget->setUserSwitchEnable(true); + } } void LockContent::pushPasswordFrame() -- 2.39.3