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

AuthService: удаление старого корпоративного соединения

В конструкторе предпринимается попытка удалить старое корпоративное
соединение, которое могло остаться, если это уже второй (и более) вход в SDDM
за один сеанс работы компьютера (до перезагрузки), и на первом входе в SDDM
было создано такое временное соединение.
владелец bb6637b2
......@@ -27,6 +27,14 @@ AuthService::AuthService(QObject *parent)
deleteGuest->start("/bin/sh", QStringList() << "-c" << cmd);
}
// If our previous enterprise connection is existed, then delete it.
{
QProcess *deleteWifi = new QProcess(this);
const QString deleteIfExist = QString("nmcli connection delete %1").arg(this->enterpriseConnectionName);
deleteWifi->start("/bin/sh", QStringList() << "-c" << deleteIfExist);
}
// clang-format off
connect(registerUserProcess, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
[=](int exitCode, QProcess::ExitStatus /*exitStatus*/)
......@@ -186,19 +194,17 @@ void AuthService::prepareGuest()
void AuthService::handleEapWifi(const QString &ssid, const QString &login, const QString &pass)
{
const QString connectionName = "temp-corp-сonnection";
QProcess *createWifi = new QProcess(this);
const QString deleteIfExist = QString("nmcli connection delete %1").arg(connectionName);
const QString checkExist = QString("nmcli connection show %1").arg(connectionName);
const QString deleteIfExist = QString("nmcli connection delete %1").arg(this->enterpriseConnectionName);
const QString checkExist = QString("nmcli connection show %1").arg(this->enterpriseConnectionName);
const QString create = QString("nmcli connection add save no type wifi con-name %1 "
"autoconnect no connection.permissions sddm "
"wifi-sec.key-mgmt wpa-eap 802-1x.password-flags 2 "
"802-1x.eap peap 802-1x.phase2-auth mschapv2 "
"802-1x.identity \"%2\" 802-1x.domain-suffix-match %3 ssid %4")
.arg(connectionName).arg(login).arg("hq.corp.mos.ru").arg(ssid);
const QString connectTo = QString("echo %1 | nmcli connection up %2 --ask").arg(pass).arg(connectionName);
.arg(this->enterpriseConnectionName).arg(login).arg("hq.corp.mos.ru").arg(ssid);
const QString connectTo = QString("echo %1 | nmcli connection up %2 --ask").arg(pass).arg(this->enterpriseConnectionName);
const QString cmd = deleteIfExist + " ; " + checkExist + " || (" + create + " && " + connectTo + ")";
createWifi->start("/bin/sh", QStringList() << "-c" << cmd);
......
......@@ -52,6 +52,7 @@ Q_SIGNALS:
private:
const QString commonGroup = "users";
const QString enterpriseConnectionName = "temp-enterprise-сonnection";
Configuration *config = nullptr;
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать