File indexing completed on 2024-04-28 16:52:46
0001 /* 0002 SPDX-FileCopyrightText: 2016 Jan Grulich <jgrulich@redhat.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "fortisslvpnauth.h" 0008 #include "ui_fortisslvpnauth.h" 0009 0010 #include "nm-fortisslvpn-service.h" 0011 0012 #include <QString> 0013 0014 class FortisslvpnAuthDialogPrivate 0015 { 0016 public: 0017 Ui_FortisslvpnAuth ui; 0018 NetworkManager::VpnSetting::Ptr setting; 0019 }; 0020 0021 FortisslvpnAuthDialog::FortisslvpnAuthDialog(const NetworkManager::VpnSetting::Ptr &setting, const QStringList &hints, QWidget *parent) 0022 : SettingWidget(setting, hints, parent) 0023 , d_ptr(new FortisslvpnAuthDialogPrivate) 0024 { 0025 Q_D(FortisslvpnAuthDialog); 0026 0027 d->ui.setupUi(this); 0028 d->setting = setting; 0029 0030 const NMStringMap data = d->setting->data(); 0031 0032 const NetworkManager::Setting::SecretFlags otpFlag = static_cast<NetworkManager::Setting::SecretFlags>(data.value(NM_FORTISSLVPN_KEY_OTP "-flags").toInt()); 0033 d->ui.otpFrame->setVisible(otpFlag == NetworkManager::Setting::NotSaved); 0034 0035 const NetworkManager::Setting::SecretFlags passwordFlag = 0036 static_cast<NetworkManager::Setting::SecretFlags>(data.value(NM_FORTISSLVPN_KEY_PASSWORD "-flags").toInt()); 0037 d->ui.passwordFrame->setVisible(passwordFlag == NetworkManager::Setting::NotSaved); 0038 0039 if (m_hints.count() == 2) { 0040 const QString hint = m_hints.at(0); 0041 const QString hintMsg = m_hints.at(1); 0042 d->ui.otpLabel->setText(hint); 0043 d->ui.labelOtp->setText(hintMsg.section(":", -2)); 0044 d->ui.otpFrame->setVisible(true); 0045 d->ui.passwordFrame->setVisible(false); 0046 } 0047 0048 KAcceleratorManager::manage(this); 0049 } 0050 0051 FortisslvpnAuthDialog::~FortisslvpnAuthDialog() 0052 { 0053 delete d_ptr; 0054 } 0055 0056 QVariantMap FortisslvpnAuthDialog::setting() const 0057 { 0058 Q_D(const FortisslvpnAuthDialog); 0059 0060 const NMStringMap data = d->setting->data(); 0061 NMStringMap secrets; 0062 QVariantMap secretData; 0063 0064 if (!d->ui.password->text().isEmpty()) { 0065 secrets.insert(QLatin1String(NM_FORTISSLVPN_KEY_PASSWORD), d->ui.password->text()); 0066 } 0067 0068 if (!data.value(NM_FORTISSLVPN_KEY_OTP "-flags").isEmpty()) { 0069 const NetworkManager::Setting::SecretFlags otpFlag = 0070 static_cast<NetworkManager::Setting::SecretFlags>(data.value(NM_FORTISSLVPN_KEY_OTP "-flags").toInt()); 0071 if (otpFlag == NetworkManager::Setting::NotSaved && !d->ui.otp->text().isEmpty()) { 0072 secrets.insert(QLatin1String(NM_FORTISSLVPN_KEY_OTP), d->ui.otp->text()); 0073 } 0074 } 0075 0076 if (!data.value(NM_FORTISSLVPN_KEY_2FA "-flags").isEmpty()) { 0077 secrets.insert(QLatin1String(NM_FORTISSLVPN_KEY_2FA), d->ui.otp->text()); 0078 } 0079 0080 secretData.insert("secrets", QVariant::fromValue<NMStringMap>(secrets)); 0081 return secretData; 0082 }