File indexing completed on 2024-05-12 09:39:07

0001 /*
0002     SPDX-FileCopyrightText: 2011 Ilia Kats <ilia-kats@gmx.net>
0003     SPDX-FileCopyrightText: 2013 Lukáš Tinkl <ltinkl@redhat.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #ifndef OPENCONNECTAUTH_H
0009 #define OPENCONNECTAUTH_H
0010 
0011 #include "settingwidget.h"
0012 
0013 #include <NetworkManagerQt/VpnSetting>
0014 
0015 #include <QNetworkCookie>
0016 #include <QSemaphore>
0017 #include <QString>
0018 #include <QUrl>
0019 #include <QWebEngineLoadingInfo>
0020 
0021 class QLayout;
0022 struct openconnect_info;
0023 struct oc_auth_form;
0024 
0025 class OpenconnectAuthWidgetPrivate;
0026 
0027 class OpenconnectAuthWidget : public SettingWidget
0028 {
0029     Q_OBJECT
0030     Q_DECLARE_PRIVATE(OpenconnectAuthWidget)
0031 public:
0032     explicit OpenconnectAuthWidget(const NetworkManager::VpnSetting::Ptr &setting, const QStringList &hints, QWidget *parent = nullptr);
0033     ~OpenconnectAuthWidget() override;
0034     virtual void readSecrets();
0035     void readConfig();
0036     QVariantMap setting() const override;
0037 
0038 private:
0039     OpenconnectAuthWidgetPrivate *const d_ptr;
0040     void acceptDialog();
0041     void addFormInfo(const QString &, const QString &);
0042     void deleteAllFromLayout(QLayout *);
0043 
0044 private Q_SLOTS:
0045     void writeNewConfig(const QString &);
0046     void validatePeerCert(const QString &, const QString &, const QString &, bool *);
0047     void processAuthForm(struct oc_auth_form *);
0048     void updateLog(const QString &, const int &);
0049     void logLevelChanged(int);
0050     void formLoginClicked();
0051     void formGroupChanged();
0052     void workerFinished(const int &);
0053     void viewServerLogToggled(bool);
0054     void connectHost();
0055     void initTokens();
0056     void handleWebEngineCookie(const QNetworkCookie &);
0057     void handleWebEngineLoad(const QWebEngineLoadingInfo &);
0058     void handleWebEngineUrl(const QUrl &url);
0059     void openWebEngine(const char *, QSemaphore *);
0060 };
0061 
0062 #endif // OPENCONNECTAUTH_H