parent
8e51437b63
commit
bf4dbda968
@ -0,0 +1,119 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2012 by Timothy Pearson *
|
||||||
|
* kb9vqf@pearsoncomputing.net *
|
||||||
|
* *
|
||||||
|
* 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. *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include <tqstringlist.h>
|
||||||
|
#include <tqlabel.h>
|
||||||
|
#include <tqmap.h>
|
||||||
|
|
||||||
|
#include <kapplication.h>
|
||||||
|
#include <ksimpleconfig.h>
|
||||||
|
#include <klocale.h>
|
||||||
|
#include <kdebug.h>
|
||||||
|
#include <kstandarddirs.h>
|
||||||
|
#include <kiconloader.h>
|
||||||
|
#include <dcopclient.h>
|
||||||
|
#include <kprocess.h>
|
||||||
|
#include <klineedit.h>
|
||||||
|
#include <ktextedit.h>
|
||||||
|
#include <kwizard.h>
|
||||||
|
#include <kdialogbase.h>
|
||||||
|
#include <tqpushbutton.h>
|
||||||
|
#include <tqradiobutton.h>
|
||||||
|
#include <kurlrequester.h>
|
||||||
|
|
||||||
|
#include "certconfigpage.h"
|
||||||
|
|
||||||
|
CertConfigPage::CertConfigPage(TQWidget *parent, const char *name ) : CertConfigPageDlg(parent,name) {
|
||||||
|
|
||||||
|
px_introSidebar->setPixmap(UserIcon("step2.png"));
|
||||||
|
|
||||||
|
connect(generateKeysEnabled, TQT_SIGNAL(stateChanged(int)), this, TQT_SLOT(setUseGeneratedKeys(int)));
|
||||||
|
connect(generateKeysDisabled, TQT_SIGNAL(stateChanged(int)), this, TQT_SLOT(setUseProvidedKeys(int)));
|
||||||
|
|
||||||
|
connect(kerberosPEM, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(validateEntries()));
|
||||||
|
connect(kerberosCRT, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(validateEntries()));
|
||||||
|
connect(kerberosKEY, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(validateEntries()));
|
||||||
|
connect(ldapCRT, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(validateEntries()));
|
||||||
|
connect(ldapKEY, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(validateEntries()));
|
||||||
|
|
||||||
|
m_parentWizard = dynamic_cast<KWizard*>(parent);
|
||||||
|
m_parentDialog = dynamic_cast<KDialogBase*>(parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
CertConfigPage::~CertConfigPage() {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
void CertConfigPage::setUseGeneratedKeys(int state) {
|
||||||
|
if (state == TQButton::On) {
|
||||||
|
generateKeysDisabled->setChecked(false);
|
||||||
|
|
||||||
|
processLockouts();
|
||||||
|
validateEntries();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CertConfigPage::setUseProvidedKeys(int state) {
|
||||||
|
if (state == TQButton::On) {
|
||||||
|
generateKeysEnabled->setChecked(false);
|
||||||
|
|
||||||
|
processLockouts();
|
||||||
|
validateEntries();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CertConfigPage::processLockouts() {
|
||||||
|
kerberosPEM->setEnabled(generateKeysDisabled->isOn());
|
||||||
|
kerberosCRT->setEnabled(generateKeysDisabled->isOn());
|
||||||
|
kerberosKEY->setEnabled(generateKeysDisabled->isOn());
|
||||||
|
ldapCRT->setEnabled(generateKeysDisabled->isOn());
|
||||||
|
ldapKEY->setEnabled(generateKeysDisabled->isOn());
|
||||||
|
}
|
||||||
|
|
||||||
|
void CertConfigPage::validateEntries() {
|
||||||
|
if (m_parentWizard) {
|
||||||
|
if (generateKeysEnabled->isOn()) {
|
||||||
|
m_parentWizard->nextButton()->setEnabled(true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ((kerberosPEM->url() != "") && (kerberosCRT->url() != "") && (kerberosKEY->url() != "") && (ldapCRT->url() != "") && (ldapKEY->url() != "")) {
|
||||||
|
m_parentWizard->nextButton()->setEnabled(true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_parentWizard->nextButton()->setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (m_parentDialog) {
|
||||||
|
if (generateKeysEnabled->isOn()) {
|
||||||
|
m_parentDialog->enableButton(KDialogBase::Ok, true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ((kerberosPEM->url() != "") && (kerberosCRT->url() != "") && (kerberosKEY->url() != "") && (ldapCRT->url() != "") && (ldapKEY->url() != "")) {
|
||||||
|
m_parentDialog->enableButton(KDialogBase::Ok, true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_parentDialog->enableButton(KDialogBase::Ok, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "certconfigpage.moc"
|
@ -0,0 +1,54 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2012 by Timothy Pearson *
|
||||||
|
* kb9vqf@pearsoncomputing.net *
|
||||||
|
* *
|
||||||
|
* 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 CERTCONFIGPAGE_H
|
||||||
|
#define CERTCONFIGPAGE_H
|
||||||
|
|
||||||
|
#include <kwizard.h>
|
||||||
|
|
||||||
|
#include "certconfigpagedlg.h"
|
||||||
|
|
||||||
|
class TQStringList;
|
||||||
|
|
||||||
|
/**Abstract class for the first wizard page. Sets the according selection on save()
|
||||||
|
*@author Timothy Pearson
|
||||||
|
*/
|
||||||
|
|
||||||
|
class CertConfigPage : public CertConfigPageDlg {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
CertConfigPage(TQWidget *parent=0, const char *name=0);
|
||||||
|
~CertConfigPage();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void validateEntries();
|
||||||
|
void processLockouts();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void setUseGeneratedKeys(int state);
|
||||||
|
void setUseProvidedKeys(int state);
|
||||||
|
|
||||||
|
private:
|
||||||
|
KWizard* m_parentWizard;
|
||||||
|
KDialogBase* m_parentDialog;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,206 @@
|
|||||||
|
<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
|
||||||
|
<class>CertConfigPageDlg</class>
|
||||||
|
<widget class="TQWidget">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>CertConfigPageDlg</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>678</width>
|
||||||
|
<height>452</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<grid>
|
||||||
|
<property name="name">
|
||||||
|
<cstring>unnamed</cstring>
|
||||||
|
</property>
|
||||||
|
<widget class="TQLabel" row="0" column="0" rowspan="9" colspan="1">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>px_introSidebar</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy>
|
||||||
|
<hsizetype>0</hsizetype>
|
||||||
|
<vsizetype>0</vsizetype>
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>170</width>
|
||||||
|
<height>430</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>Panel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="frameShadow">
|
||||||
|
<enum>Sunken</enum>
|
||||||
|
</property>
|
||||||
|
<property name="scaledContents">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="indent">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="TQGroupBox" row="0" column="1">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>groupCertInfo</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Realm Certificate Information (required)</string>
|
||||||
|
</property>
|
||||||
|
<grid>
|
||||||
|
<property name="name">
|
||||||
|
<cstring>unnamed</cstring>
|
||||||
|
</property>
|
||||||
|
<widget class="TQRadioButton" row="0" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>generateKeysEnabled</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Generate New Certificates and Keys</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="TQRadioButton" row="1" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>generateKeysDisabled</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Install Provided Certificates and Keys</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="TQLabel" row="2" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>unnamed</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Kerberos PKI Anchor</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="KURLRequester" row="2" column="1" colspan="1">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>kerberosPEM</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="mode">
|
||||||
|
<number>25</number>
|
||||||
|
</property>
|
||||||
|
<property name="filter">
|
||||||
|
<cstring>*.pem|PKI Anchor Files (*.pem)</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="TQLabel" row="3" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>unnamed</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Kerberos Public Certificate</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="KURLRequester" row="3" column="1" colspan="1">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>kerberosCRT</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="mode">
|
||||||
|
<number>25</number>
|
||||||
|
</property>
|
||||||
|
<property name="filter">
|
||||||
|
<cstring>*.crt|Public Certificate (*.crt)</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="TQLabel" row="4" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>unnamed</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Kerberos Private Key</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="KURLRequester" row="4" column="1" colspan="1">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>kerberosKEY</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="mode">
|
||||||
|
<number>25</number>
|
||||||
|
</property>
|
||||||
|
<property name="filter">
|
||||||
|
<cstring>*.key|Private Key (*.key)</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="TQLabel" row="5" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>unnamed</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>LDAP TLS Public Certificate</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="KURLRequester" row="5" column="1" colspan="1">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>ldapCRT</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="mode">
|
||||||
|
<number>25</number>
|
||||||
|
</property>
|
||||||
|
<property name="filter">
|
||||||
|
<cstring>*.crt|Public Certificate (*.crt)</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="TQLabel" row="6" column="0">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>unnamed</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>LDAP TLS Private Key</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="KURLRequester" row="6" column="1" colspan="1">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>ldapKEY</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="mode">
|
||||||
|
<number>25</number>
|
||||||
|
</property>
|
||||||
|
<property name="filter">
|
||||||
|
<cstring>*.key|Private Key (*.key)</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</grid>
|
||||||
|
</widget>
|
||||||
|
<spacer row="3" column="1">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>Spacer6</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>Fixed</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
<spacer row="7" column="1">
|
||||||
|
<property name="name">
|
||||||
|
<cstring>Spacer5</cstring>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>Expanding</enum>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</grid>
|
||||||
|
</widget>
|
||||||
|
<layoutdefaults spacing="3" margin="6"/>
|
||||||
|
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
|
||||||
|
</UI>
|
Loading…
Reference in new issue