Коммит 1e7d413e создал по автору sgakerru's avatar sgakerru
Просмотр файлов

sddm-theme: автоподключение по логину-паролю (если Wi-Fi не соединен)

Предпринимаем попытку автосоединения к
корпоративному Wi-Fi после ввода логина и пароля
в случае, когда нет активного беспроводного соединения.

1) Создаем соединение и пытаемся подключиться к нему.

2) Асинхронно реагируем на окончательное изменение состояния соединения
(неважно, удалось в итоге подключиться к сети или нет,
например, если были неверно введены логин или пароль).

3) Осуществляем вход в систему.
владелец 6fb7332f
......@@ -9,13 +9,16 @@ import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.plasma.extras 2.0 as PlasmaExtras
import org.kde.kirigami 2.13 as Kirigami
import org.kde.plasma.networkmanagement 0.2 as PlasmaNM
import org.mos.auth 0.1 as MosAuthPlugin
SessionManagementScreen {
id: root
// From parent
required property MosAuthPlugin.AuthService authService
required property int wirelessStatus
property Item mainPasswordBox: passwordBox
......@@ -101,7 +104,31 @@ SessionManagementScreen {
//
// See https://bugreports.qt.io/browse/QTBUG-55460
loginButton.forceActiveFocus();
loginRequest(username, password);
// Autoconnect to enterprise Wi-Fi:
// If SSID set in config and now Wi-Fi is deactivated.
const ssid = "test-ssid";
if (ssid !== "" && wirelessStatus === PlasmaNM.Enums.Deactivated)
{
// Do async login request,
// after the connection is completed (successfully or not).
const oneshot = () => {
if (root.wirelessStatus === PlasmaNM.Enums.Activated
|| root.wirelessStatus === PlasmaNM.Enums.Deactivated)
{
root.onWirelessStatusChanged.disconnect(oneshot);
loginRequest(username, password);
}
};
// Create enterprise connection and try to connect to it.
authService.handleEapWifi(ssid, username, password);
// Asynchronously handle changes of the connection status.
root.onWirelessStatusChanged.connect(oneshot);
}
else {
loginRequest(username, password);
}
}
Item {
......
......@@ -350,6 +350,7 @@ PlasmaCore.ColorScope {
showMosButtons: true
authService: mosAuthService
wirelessStatus: root.wirelessStatus
notificationMessage: {
const parts = [];
......@@ -625,6 +626,7 @@ PlasmaCore.ColorScope {
}
authService: mosAuthService
wirelessStatus: root.wirelessStatus
onLoginRequest: {
root.notificationMessage = ""
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать