Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.2
NetworkManager-kde4
add-novellvpn-plugin.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File add-novellvpn-plugin.diff of Package NetworkManager-kde4
Index: vpnplugins/novellvpn/nm-novellvpn-service.h =================================================================== --- vpnplugins/novellvpn/nm-novellvpn-service.h (revision 0) +++ vpnplugins/novellvpn/nm-novellvpn-service.h (revision 0) @@ -0,0 +1,83 @@ +/* nm-novellvpn-service - novellvpn integration with NetworkManager + * + * Authors: + * Bin Li <bili@novell.com> + * Sureshkumar T <tsureshkumar@novell.com> + * + * Based on work by Dan Williams <dcbw@redhat.com> + * Tim Niemueller <tim@niemueller.de> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + */ + +#ifndef NM_NOVELLVPN_SERVICE_H +#define NM_NOVELLVPN_SERVICE_H + +/* + Do not change numbers, only add if needed! + See properties/nm-novellvpn.c:connection_type_changed() for details + */ + +#define NM_DBUS_SERVICE_NOVELLVPN "org.freedesktop.NetworkManager.novellvpn" +#define NM_DBUS_INTERFACE_NOVELLVPN "org.freedesktop.NetworkManager.novellvpn" +#define NM_DBUS_PATH_NOVELLVPN "/org/freedesktop/NetworkManager/novellvpn" + +#define NM_NOVELLVPN_CONTYPE_INVALID -1 +#define NM_NOVELLVPN_CONTYPE_GROUPAUTH 0 +#define NM_NOVELLVPN_CONTYPE_X509 1 + +#define NM_NOVELLVPN_KEY_GWTYPE "gateway-type" +#define NM_NOVELLVPN_KEY_AUTHTYPE "auth-type" +#define NM_NOVELLVPN_KEY_NAME "name" +#define NM_NOVELLVPN_KEY_GATEWAY "remote" +#define NM_NOVELLVPN_KEY_USER_NAME "username" +#define NM_NOVELLVPN_KEY_GROUP_NAME "group-name" +#define NM_NOVELLVPN_KEY_DHGROUP "dhgroup" +#define NM_NOVELLVPN_KEY_PFSGROUP "pfsgroup" +#define NM_NOVELLVPN_KEY_CERTIFICATE "certificate" +#define NM_NOVELLVPN_KEY_NOSPLITTUNNEL "nosplittunnel" + +#define NM_NOVELLVPN_KEY_HOW_MANY_PWD "how_many_passwords" +#define NM_NOVELLVPN_KEY_USER_PWD "unenc-user-password" +#define NM_NOVELLVPN_KEY_GRP_PWD "unenc-group-password" +#define NM_NOVELLVPN_KEY_ENC_GRP_PWD "enc-group-password" +#define NM_NOVELLVPN_KEY_CERT_PWD "unenc-cert-password" + +#define NM_NOVELLVPN_GWTYPE_NORTEL_STRING "nortel" +#define NM_NOVELLVPN_GWTYPE_STDGW_STRING "standard-gateway" +#define NM_NOVELLVPN_CONTYPE_GROUPAUTH_STRING "XAUTH" +#define NM_NOVELLVPN_CONTYPE_X509_STRING "X.509" + + +#define NM_NOVELLVPN_GWTYPE_INVALID -1 +#define NM_NOVELLVPN_GWTYPE_NORTEL 0 +#define NM_NOVELLVPN_GWTYPE_STDGW 1 + +typedef enum { + DHGROUP_INVALID = -1, + DHGROUP_DH1 = 0, + DHGROUP_DH2 +} DHGroup; + + +typedef enum { + PFSGROUP_INVALID = -1, + PFSGROUP_OFF = 0, + PFSGROUP_PFS1, + PFSGROUP_PFS2 +} PFSGroup; + +#endif Index: vpnplugins/novellvpn/networkmanagement_novellvpnui.desktop =================================================================== --- vpnplugins/novellvpn/networkmanagement_novellvpnui.desktop (revision 0) +++ vpnplugins/novellvpn/networkmanagement_novellvpnui.desktop (revision 0) @@ -0,0 +1,18 @@ +[Desktop Entry] +Type=Service +Icon= +ServiceTypes=NetworkManagement/VpnUiPlugin +X-KDE-Library=networkmanagement_novellvpnui +X-NetworkManager-Services=novellvpn +X-KDE-PluginInfo-Author=Will Stephenson +X-KDE-PluginInfo-Email=wstephenson@kde.org +X-KDE-PluginInfo-Name=networkmanagement_novellvpnui +X-KDE-PluginInfo-Version=0.1 +X-KDE-PluginInfo-Website= +X-KDE-PluginInfo-Category=VPNService +X-KDE-PluginInfo-Depends= +X-KDE-PluginInfo-License=GPL +X-KDE-PluginInfo-EnabledByDefault=false +Name=Novell VPN (turnpike) +Comment=Enables KNetworkManager to connect to Novell VPN (turnpike) VPNs. + Index: vpnplugins/novellvpn/novellvpnprop.ui =================================================================== --- vpnplugins/novellvpn/novellvpnprop.ui (revision 0) +++ vpnplugins/novellvpn/novellvpnprop.ui (revision 0) @@ -0,0 +1,253 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>NovellVpnWidget</class> + <widget class="QWidget" name="NovellVpnWidget"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>336</width> + <height>382</height> + </rect> + </property> + <property name="windowTitle"> + <string>Novell VPN</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>General</string> + </property> + <layout class="QFormLayout" name="formLayout_2"> + <item row="0" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>&Gateway:</string> + </property> + <property name="buddy"> + <cstring>leGateway</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="KLineEdit" name="leGateway"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Gate&way Type:</string> + </property> + <property name="buddy"> + <cstring>cmbGwType</cstring> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QComboBox" name="cmbGwType"> + <item> + <property name="text"> + <string>Nortel</string> + </property> + </item> + <item> + <property name="text"> + <string>Standard Gateway</string> + </property> + </item> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox_2"> + <property name="title"> + <string>Authentication</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="label_4"> + <property name="text"> + <string>&Type:</string> + </property> + <property name="buddy"> + <cstring>cmbAuthType</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="cmbAuthType"> + <item> + <property name="text"> + <string>XAUTH</string> + </property> + </item> + <item> + <property name="text"> + <string>X.509</string> + </property> + </item> + </widget> + </item> + <item row="1" column="0" colspan="2"> + <widget class="QStackedWidget" name="authTypeStack"> + <property name="currentIndex"> + <number>0</number> + </property> + <widget class="QWidget" name="page"> + <layout class="QFormLayout" name="formLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>&User Name:</string> + </property> + <property name="buddy"> + <cstring>leUserName</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="KLineEdit" name="leUserName"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_5"> + <property name="text"> + <string>&Group Name:</string> + </property> + <property name="buddy"> + <cstring>leGroupName</cstring> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="KLineEdit" name="leGroupName"/> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_6"> + <property name="text"> + <string>U&ser Password:</string> + </property> + <property name="buddy"> + <cstring>leUserPass</cstring> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="KLineEdit" name="leUserPass"> + <property name="passwordMode"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_7"> + <property name="text"> + <string>G&roup Password:</string> + </property> + <property name="buddy"> + <cstring>leGroupPass</cstring> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="KLineEdit" name="leGroupPass"> + <property name="passwordMode"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="page_2"> + <layout class="QFormLayout" name="formLayout_3"> + <item row="0" column="0"> + <widget class="QLabel" name="label_13"> + <property name="text"> + <string>Certificate &file:</string> + </property> + <property name="buddy"> + <cstring>x509Cert</cstring> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="KUrlRequester" name="x509Cert"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_14"> + <property name="text"> + <string>Certificate &password:</string> + </property> + <property name="buddy"> + <cstring>x509CertPass</cstring> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="KLineEdit" name="x509CertPass"> + <property name="passwordMode"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + </widget> + </item> + <item row="2" column="0"> + <widget class="QCheckBox" name="cbShowPasswords"> + <property name="text"> + <string>Show Passwords</string> + </property> + </widget> + </item> + <item row="3" column="1"> + <widget class="KPushButton" name="btnAdvanced"> + <property name="text"> + <string>Ad&vanced...</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <customwidgets> + <customwidget> + <class>KUrlRequester</class> + <extends>QFrame</extends> + <header>kurlrequester.h</header> + </customwidget> + <customwidget> + <class>KPushButton</class> + <extends>QPushButton</extends> + <header>kpushbutton.h</header> + </customwidget> + <customwidget> + <class>KLineEdit</class> + <extends>QLineEdit</extends> + <header>klineedit.h</header> + </customwidget> + </customwidgets> + <resources/> + <connections> + <connection> + <sender>cmbAuthType</sender> + <signal>currentIndexChanged(int)</signal> + <receiver>authTypeStack</receiver> + <slot>setCurrentIndex(int)</slot> + <hints> + <hint type="sourcelabel"> + <x>187</x> + <y>150</y> + </hint> + <hint type="destinationlabel"> + <x>45</x> + <y>183</y> + </hint> + </hints> + </connection> + </connections> +</ui> Index: vpnplugins/novellvpn/novellvpn.cpp =================================================================== --- vpnplugins/novellvpn/novellvpn.cpp (revision 0) +++ vpnplugins/novellvpn/novellvpn.cpp (revision 0) @@ -0,0 +1,47 @@ +/* +Copyright 2009 Will Stephenson <wstephenson@kde.org> + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License or (at your option) version 3 or any later version +accepted by the membership of KDE e.V. (or its successor approved +by the membership of KDE e.V.), which shall act as a proxy +defined in Section 14 of version 3 of the license. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "novellvpn.h" + +#include <KPluginFactory> + +#include "novellvpnwidget.h" + +#include "connection.h" + +K_PLUGIN_FACTORY( NovellVpnUiPluginFactory, registerPlugin<NovellVpnUiPlugin>(); ) +K_EXPORT_PLUGIN( NovellVpnUiPluginFactory( "networkmanagement_novellvpnui", "libknetworkmanager" ) ) + +NovellVpnUiPlugin::NovellVpnUiPlugin(QObject * parent, const QVariantList &) : VpnUiPlugin(parent) +{ +} + +NovellVpnUiPlugin::~NovellVpnUiPlugin() +{ + +} + +SettingWidget * NovellVpnUiPlugin::widget(Knm::Connection * connection, QWidget * parent) +{ + NovellVpnSettingWidget * wid = new NovellVpnSettingWidget(connection, parent); + return wid; +} + +// vim: sw=4 sts=4 et tw=100 Index: vpnplugins/novellvpn/novellvpnadvancedprop.ui =================================================================== --- vpnplugins/novellvpn/novellvpnadvancedprop.ui (revision 0) +++ vpnplugins/novellvpn/novellvpnadvancedprop.ui (revision 0) @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>NovellVpnAdvancedWidget</class> + <widget class="QWidget" name="NovellVpnAdvancedWidget"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>156</width> + <height>244</height> + </rect> + </property> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>&DH Group</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QRadioButton" name="rbDh1"> + <property name="text"> + <string>768 bits (DH&1)</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="rbDh2"> + <property name="text"> + <string>1024 bits (DH&2)</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox_2"> + <property name="title"> + <string>&PFS Group</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3"> + <item> + <widget class="QRadioButton" name="rbPfOff"> + <property name="text"> + <string>&Off</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="rbPf1"> + <property name="text"> + <string>&768 bits (PF1)</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="rbPf2"> + <property name="text"> + <string>102&4 bits (PF2)</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QCheckBox" name="cbDisableSplit"> + <property name="text"> + <string>Disable &split tunnel</string> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> Index: vpnplugins/novellvpn/novellvpnwidget.cpp =================================================================== --- vpnplugins/novellvpn/novellvpnwidget.cpp (revision 0) +++ vpnplugins/novellvpn/novellvpnwidget.cpp (revision 0) @@ -0,0 +1,214 @@ +/* +Copyright 2009 Will Stephenson <wstephenson@kde.org> + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License or (at your option) version 3 or any later version +accepted by the membership of KDE e.V. (or its successor approved +by the membership of KDE e.V.), which shall act as a proxy +defined in Section 14 of version 3 of the license. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "novellvpnwidget.h" +#include "nm-novellvpn-service.h" + +#include "settingwidget_p.h" + +#include <KDebug> +#include <KLocale> + +#include <nm-setting-vpn.h> +#include "settings/vpn.h" +#include "connection.h" + +#include "ui_novellvpnprop.h" +#include "ui_novellvpnadvancedprop.h" + +class NovellVpnSettingWidget::Private +{ +public: + Ui_NovellVpnWidget ui; + Knm::VpnSetting * setting; + Ui_NovellVpnAdvancedWidget advUi; + KDialog * advancedDialog; +}; + + +NovellVpnSettingWidget::NovellVpnSettingWidget(Knm::Connection * connection, QWidget * parent) +: SettingWidget(connection, parent), d(new Private) +{ + //setValid(false); + d->ui.setupUi(this); + d->ui.x509Cert->setMode(KFile::LocalOnly); + d->setting = static_cast<Knm::VpnSetting *>(connection->setting(Knm::Setting::Vpn)); + + connect(d->ui.leGateway, SIGNAL(textChanged(const QString&)), this, SLOT(validate())); + connect(d->ui.cbShowPasswords, SIGNAL(toggled(bool)), this, SLOT(showPasswordsChanged(bool))); + + connect(d->ui.cmbGwType, SIGNAL(currentIndexChanged(int)), this, SLOT(gatewayTypeChanged(int))); + + connect(d->ui.btnAdvanced, SIGNAL(clicked()), this, SLOT(advancedClicked())); + + d->advancedDialog = new KDialog(this); + d->advancedDialog->setButtons(KDialog::Ok); + d->advancedDialog->setCaption(i18nc("@window:title NovellVPN advanced connection options", "NovellVPN advanced options")); + QWidget * advWid = new QWidget(d->advancedDialog); + d->advUi.setupUi(advWid); + d->advancedDialog->setMainWidget(advWid); +} + +NovellVpnSettingWidget::~NovellVpnSettingWidget() +{ + delete d; +} + +void NovellVpnSettingWidget::advancedClicked() +{ + d->advancedDialog->exec(); +} + +void NovellVpnSettingWidget::gatewayTypeChanged(int gatewayType) +{ + if ( gatewayType == 1) { + d->ui.cmbAuthType->setCurrentIndex(1); + } + d->ui.cmbAuthType->setEnabled(gatewayType != 1); +} + +void NovellVpnSettingWidget::showPasswordsChanged(bool show) +{ + d->ui.x509CertPass->setPasswordMode(!show); + d->ui.leUserPass->setPasswordMode(!show); + d->ui.leGroupPass->setPasswordMode(!show); +} + +void NovellVpnSettingWidget::readConfig() +{ + kDebug(); + + // General settings + QStringMap dataMap = d->setting->data(); + + d->ui.leGateway->setText( dataMap[NM_NOVELLVPN_KEY_GATEWAY] ); + + QString gwType = dataMap[NM_NOVELLVPN_KEY_GWTYPE]; + + if (gwType == QLatin1String(NM_NOVELLVPN_GWTYPE_NORTEL_STRING)) { + d->ui.cmbGwType->setCurrentIndex(0); + QString authType = dataMap[NM_NOVELLVPN_KEY_AUTHTYPE]; + if (authType == QLatin1String(NM_NOVELLVPN_CONTYPE_GROUPAUTH_STRING)) { + d->ui.leUserName->setText(dataMap[NM_NOVELLVPN_KEY_USER_NAME]); + d->ui.leGroupName->setText(dataMap[NM_NOVELLVPN_KEY_GROUP_NAME]); + } else if (authType == QLatin1String(NM_NOVELLVPN_CONTYPE_X509_STRING)) { + readX509Auth(dataMap); + } + } else if (gwType == QLatin1String(NM_NOVELLVPN_GWTYPE_STDGW_STRING)) { + readX509Auth(dataMap); + } + + // advanced + QString dhGroup = dataMap[QLatin1String(NM_NOVELLVPN_KEY_DHGROUP)]; + if (dhGroup.toUInt() == 1) { + d->advUi.rbDh2->setChecked(true); + } + + QString pfsGroup = dataMap[QLatin1String(NM_NOVELLVPN_KEY_PFSGROUP)]; + if (pfsGroup.toUInt() == PFSGROUP_PFS1) { + d->advUi.rbPf1->setChecked(true); + } else if (pfsGroup.toUInt() == PFSGROUP_PFS2) { + d->advUi.rbPf2->setChecked(true); + } + + if (dataMap[QLatin1String(NM_NOVELLVPN_KEY_NOSPLITTUNNEL)] == QLatin1String("yes")) { + d->advUi.cbDisableSplit->setChecked(true); + } +} + +void NovellVpnSettingWidget::readX509Auth(const QStringMap & dataMap) +{ + d->ui.cmbGwType->setCurrentIndex(1); + d->ui.x509Cert->setUrl(KUrl(dataMap[NM_NOVELLVPN_KEY_CERTIFICATE])); +} + +void NovellVpnSettingWidget::writeConfig() +{ + kDebug(); + + d->setting->setServiceType(QLatin1String(NM_DBUS_SERVICE_NOVELLVPN)); + + QStringMap data; + QVariantMap secretData; + + // required settings + data.insert(NM_NOVELLVPN_KEY_GATEWAY, d->ui.leGateway->text()); + + if (d->ui.cmbGwType->currentIndex() == 0) { + data.insert(QLatin1String(NM_NOVELLVPN_KEY_GWTYPE), QLatin1String(NM_NOVELLVPN_GWTYPE_NORTEL_STRING)); + + if (d->ui.cmbAuthType->currentIndex() == 0) { + data.insert(QLatin1String(NM_NOVELLVPN_KEY_AUTHTYPE), QLatin1String(NM_NOVELLVPN_CONTYPE_GROUPAUTH_STRING)); + + data.insert(QLatin1String(NM_NOVELLVPN_KEY_USER_NAME), d->ui.leUserName->text()); + data.insert(QLatin1String(NM_NOVELLVPN_KEY_GROUP_NAME), d->ui.leGroupName->text()); + secretData.insert(QLatin1String(NM_NOVELLVPN_KEY_USER_PWD), d->ui.leUserPass->text()); + secretData.insert(QLatin1String(NM_NOVELLVPN_KEY_GRP_PWD), d->ui.leGroupPass->text()); + } else { + writeX509Auth(data, secretData); + } + } else { + data.insert(QLatin1String(NM_NOVELLVPN_KEY_GWTYPE), QLatin1String(NM_NOVELLVPN_GWTYPE_STDGW_STRING)); + writeX509Auth(data, secretData); + } + + // advanced dialog + data.insert(QLatin1String(NM_NOVELLVPN_KEY_DHGROUP), + (d->advUi.rbDh1->isChecked() + ? QString::number(DHGROUP_DH1) + : QString::number(DHGROUP_DH2))); + + if (d->advUi.rbPfOff->isChecked()) { + data.insert(QLatin1String(NM_NOVELLVPN_KEY_PFSGROUP), QString::number(PFSGROUP_OFF)); + } else if (d->advUi.rbPf1->isChecked()) { + data.insert(QLatin1String(NM_NOVELLVPN_KEY_PFSGROUP), QString::number(PFSGROUP_PFS1)); + } else { + data.insert(QLatin1String(NM_NOVELLVPN_KEY_PFSGROUP), QString::number(PFSGROUP_PFS2)); + } + + data.insert(QLatin1String(NM_NOVELLVPN_KEY_NOSPLITTUNNEL), d->advUi.cbDisableSplit->isChecked() ? QLatin1String("yes") : QLatin1String("no")); + + d->setting->setData(data); + d->setting->setVpnSecrets(secretData); +} + +void NovellVpnSettingWidget::writeX509Auth(QStringMap & data, QVariantMap & secretData) +{ + data.insert(QLatin1String(NM_NOVELLVPN_KEY_AUTHTYPE), QLatin1String(NM_NOVELLVPN_CONTYPE_X509_STRING)); + data.insert(NM_NOVELLVPN_KEY_CERTIFICATE, d->ui.x509Cert->url().path().toUtf8()); + secretData.insert(QLatin1String(NM_NOVELLVPN_KEY_CERT_PWD), d->ui.x509CertPass->text()); +} + +void NovellVpnSettingWidget::readSecrets() +{ + QVariantMap secrets = d->setting->vpnSecrets(); + kDebug() << "Value of" << NM_NOVELLVPN_KEY_CERT_PWD << secrets.value(QLatin1String(NM_NOVELLVPN_KEY_CERT_PWD)).toString(); + d->ui.x509CertPass->setText(secrets.value(QLatin1String(NM_NOVELLVPN_KEY_CERT_PWD)).toString()); + d->ui.leUserPass->setText(secrets.value(QLatin1String(NM_NOVELLVPN_KEY_USER_PWD)).toString()); + d->ui.leGroupPass->setText(secrets.value(QLatin1String(NM_NOVELLVPN_KEY_GRP_PWD)).toString()); +} + +void NovellVpnSettingWidget::validate() +{ +// setValid(!d->ui.leGateway->text().isEmpty()); +// emit valid(isValid()); +} + +// vim: sw=4 sts=4 et tw=100 Index: vpnplugins/novellvpn/novellvpn.h =================================================================== --- vpnplugins/novellvpn/novellvpn.h (revision 0) +++ vpnplugins/novellvpn/novellvpn.h (revision 0) @@ -0,0 +1,42 @@ +/* +Copyright 2009 Will Stephenson <wstephenson@kde.org> + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License or (at your option) version 3 or any later version +accepted by the membership of KDE e.V. (or its successor approved +by the membership of KDE e.V.), which shall act as a proxy +defined in Section 14 of version 3 of the license. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef KNM4_NOVELLVPN_H +#define KNM4_NOVELLVPN_H + +#include "vpnuiplugin.h" + +#include <QVariant> + +namespace Knm +{ + class Connection; +} // namespace Knm + +class NovellVpnUiPlugin : public VpnUiPlugin +{ +Q_OBJECT +public: + NovellVpnUiPlugin(QObject * parent = 0, const QVariantList& = QVariantList()); + virtual ~NovellVpnUiPlugin(); + SettingWidget * widget(Knm::Connection *, QWidget * parent = 0); +}; + +#endif // KNM4_NOVELLVPN_H Index: vpnplugins/novellvpn/CMakeLists.txt =================================================================== --- vpnplugins/novellvpn/CMakeLists.txt (revision 0) +++ vpnplugins/novellvpn/CMakeLists.txt (revision 0) @@ -0,0 +1,19 @@ +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libs/ui) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libs) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../libs/internals) + +set(novellvpn_SRCS + novellvpn.cpp + novellvpnwidget.cpp + ) + +kde4_add_ui_files(novellvpn_SRCS novellvpnprop.ui novellvpnadvancedprop.ui) + +kde4_add_plugin(networkmanagement_novellvpnui ${novellvpn_SRCS}) + +target_link_libraries(networkmanagement_novellvpnui ${KDE4_KIO_LIBS} knmui knminternals ) + +install(TARGETS networkmanagement_novellvpnui DESTINATION ${PLUGIN_INSTALL_DIR}) + +install( FILES networkmanagement_novellvpnui.desktop DESTINATION ${SERVICES_INSTALL_DIR}) + Index: vpnplugins/novellvpn/novellvpnwidget.h =================================================================== --- vpnplugins/novellvpn/novellvpnwidget.h (revision 0) +++ vpnplugins/novellvpn/novellvpnwidget.h (revision 0) @@ -0,0 +1,56 @@ +/* +Copyright 2009 Will Stephenson <wstephenson@kde.org> + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License or (at your option) version 3 or any later version +accepted by the membership of KDE e.V. (or its successor approved +by the membership of KDE e.V.), which shall act as a proxy +defined in Section 14 of version 3 of the license. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef NOVELLVPNWIDGET_H +#define NOVELLVPNWIDGET_H + +#include "settingwidget.h" + +#include <types.h> + +namespace Knm +{ + class Connection; +} // namespace Knm + +class NovellVpnSettingWidget : public SettingWidget +{ +Q_OBJECT +public: + NovellVpnSettingWidget(Knm::Connection *, QWidget * parent = 0); + ~NovellVpnSettingWidget(); + void readConfig(); + void writeConfig(); + void readSecrets(); +protected Q_SLOTS: + void validate(); + + void advancedClicked(); + + void gatewayTypeChanged(int); + void showPasswordsChanged(bool); +private: + void readX509Auth(const QStringMap &); + void writeX509Auth(QStringMap & data, QVariantMap & secretData); + class Private; + Private * d; +}; + +#endif // NOVELLVPNWIDGET_H Index: vpnplugins/CMakeLists.txt =================================================================== --- vpnplugins/CMakeLists.txt (revision 1043876) +++ vpnplugins/CMakeLists.txt (working copy) @@ -1,3 +1,4 @@ add_subdirectory(openvpn) +add_subdirectory(novellvpn) add_subdirectory(pptp) add_subdirectory(vpnc)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor