Add service editor

pull/1/head
Timothy Pearson 12 years ago
parent dbd589f7be
commit ccbc653660

@ -4,7 +4,7 @@ METASOURCES = AUTO
# Install this plugin in the KDE modules directory
kde_module_LTLIBRARIES = kcm_ldapmanager.la
kcm_ldapmanager_la_SOURCES = ldapmgr.cpp ldapconfigbase.ui userconfigbase.ui groupconfigbase.ui userconfigdlg.cpp groupconfigdlg.cpp
kcm_ldapmanager_la_SOURCES = ldapmgr.cpp ldapconfigbase.ui userconfigbase.ui groupconfigbase.ui serviceconfigbase.ui userconfigdlg.cpp groupconfigdlg.cpp serviceconfigdlg.cpp
kcm_ldapmanager_la_LIBADD = -lkio $(LIB_TDEUI) -lldap -ltdeldap
kcm_ldapmanager_la_LDFLAGS = -avoid-version -module -no-undefined \
$(all_libraries)

@ -672,6 +672,198 @@
</widget>
</grid>
</widget>
<widget class="TQWidget">
<property name="name">
<cstring>servicesTab</cstring>
</property>
<attribute name="title">
<string>Services</string>
</attribute>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<widget class="TQLabel" row="0" column="0" colspan="0">
<property name="name">
<cstring>service_icon</cstring>
</property>
</widget>
<widget class="TQLabel" row="0" column="1" colspan="0">
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="text">
<string>Services in LDAP Realm</string>
</property>
</widget>
<widget class="KComboBox" row="0" column="3" colspan="0">
<property name="name">
<cstring>service_ldapRealm</cstring>
</property>
</widget>
<spacer row="0" column="2">
<property name="name" stdset="0">
<cstring>Spacer3</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget class="TQSplitter" row="1" column="0" colspan="4">
<property name="name">
<cstring>splitter1</cstring>
</property>
<property name="orientation">
<enum>Vertical</enum>
</property>
<widget class="KListView" row="1" column="0" colspan="4">
<column>
<property name="text">
<string>Service Name</string>
</property>
<property name="clickable">
<bool>true</bool>
</property>
<property name="resizeable">
<bool>true</bool>
</property>
</column>
<column>
<property name="text">
<string>Machine Name</string>
</property>
<property name="clickable">
<bool>true</bool>
</property>
<property name="resizeable">
<bool>true</bool>
</property>
</column>
<property name="name">
<cstring>service_list</cstring>
</property>
<property name="rootIsDecorated">
<bool>false</bool>
</property>
</widget>
<widget class="TQLayoutWidget" row="2" column="0" colspan="4">
<property name="name">
<cstring>unnamed_layoutwidget3</cstring>
</property>
<grid>
<property name="margin">
<number>0</number>
</property>
<widget class="TQLayoutWidget" row="0" column="0">
<property name="name">
<cstring>serviceControls</cstring>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<widget class="TQPushButton" row="0" column="1" colspan="0">
<property name="name">
<cstring>service_buttonModify</cstring>
</property>
<property name="text">
<string>Modify</string>
</property>
</widget>
<widget class="TQPushButton" row="0" column="0" colspan="0">
<property name="name">
<cstring>service_buttonAdd</cstring>
</property>
<property name="text">
<string>New</string>
</property>
</widget>
<widget class="TQPushButton" row="0" column="2" colspan="0">
<property name="name">
<cstring>service_buttonDelete</cstring>
</property>
<property name="text">
<string>Delete</string>
</property>
</widget>
</grid>
</widget>
<widget class="TQGroupBox" row="1" column="0">
<property name="name">
<cstring>groupServiceDetails</cstring>
</property>
<property name="title">
<string>Details</string>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<widget class="TQLabel" row="0" column="0" colspan="0">
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="text">
<string>Service Name:</string>
</property>
</widget>
<widget class="KLineEdit" row="0" column="1" colspan="0">
<property name="name">
<cstring>service_name</cstring>
</property>
<property name="enabled">
<cstring>false</cstring>
</property>
</widget>
<widget class="TQLabel" row="0" column="2" colspan="0">
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="text">
<string>Author:</string>
</property>
</widget>
<widget class="KLineEdit" row="0" column="3" colspan="0">
<property name="name">
<cstring>service_author</cstring>
</property>
<property name="enabled">
<cstring>false</cstring>
</property>
</widget>
</grid>
</widget>
<spacer row="4" column="0">
<property name="name" stdset="0">
<cstring>Spacer6</cstring>
</property>
<property name="orientation">
<enum>Vertical</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</grid>
</widget>
</widget>
</grid>
</widget>
</widget>
</grid>
</widget>

@ -48,6 +48,7 @@
#include "ldappasswddlg.h"
#include "userconfigdlg.h"
#include "groupconfigdlg.h"
#include "serviceconfigdlg.h"
// FIXME
// Connect this to CMake/Automake
@ -74,6 +75,8 @@ LDAPConfig::LDAPConfig(TQWidget *parent, const char *name, const TQStringList&)
base->group_memberList->setFullWidth(true);
base->machine_list->setAllColumnsShowFocus(true);
base->machine_list->setFullWidth(true);
base->service_list->setAllColumnsShowFocus(true);
base->service_list->setFullWidth(true);
base->user_loginName->setEnabled(false);
base->user_uid->setEnabled(false);
@ -84,27 +87,34 @@ LDAPConfig::LDAPConfig(TQWidget *parent, const char *name, const TQStringList&)
base->machine_name->setEnabled(false);
base->machine_author->setEnabled(false);
base->service_name->setEnabled(false);
base->service_author->setEnabled(false);
base->user_icon->setPixmap(SmallIcon("personal.png"));
base->group_icon->setPixmap(SmallIcon("kdmconfig.png"));
base->machine_icon->setPixmap(SmallIcon("system.png"));
base->service_icon->setPixmap(SmallIcon("kcmsystem.png"));
connect(base->user_ldapRealm, TQT_SIGNAL(activated(const TQString&)), this, TQT_SLOT(connectToRealm(const TQString&)));
connect(base->group_ldapRealm, TQT_SIGNAL(activated(const TQString&)), this, TQT_SLOT(connectToRealm(const TQString&)));
connect(base->machine_ldapRealm, TQT_SIGNAL(activated(const TQString&)), this, TQT_SLOT(connectToRealm(const TQString&)));
connect(base->service_ldapRealm, TQT_SIGNAL(activated(const TQString&)), this, TQT_SLOT(connectToRealm(const TQString&)));
connect(base->user_list, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(userHighlighted()));
connect(base->group_list, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(groupHighlighted()));
connect(base->machine_list, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(machineHighlighted()));
connect(base->service_list, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(serviceHighlighted()));
connect(base->user_list, TQT_SIGNAL(executed(TQListViewItem*)), this, TQT_SLOT(modifySelectedUser()));
connect(base->group_list, TQT_SIGNAL(executed(TQListViewItem*)), this, TQT_SLOT(modifySelectedGroup()));
connect(base->user_buttonAdd, TQT_SIGNAL(clicked()), this, TQT_SLOT(addNewUser()));
connect(base->group_buttonAdd, TQT_SIGNAL(clicked()), this, TQT_SLOT(addNewGroup()));
connect(base->service_buttonAdd, TQT_SIGNAL(clicked()), this, TQT_SLOT(addNewService()));
connect(base->user_buttonModify, TQT_SIGNAL(clicked()), this, TQT_SLOT(modifySelectedUser()));
connect(base->group_buttonModify, TQT_SIGNAL(clicked()), this, TQT_SLOT(modifySelectedGroup()));
connect(base->user_buttonDelete, TQT_SIGNAL(clicked()), this, TQT_SLOT(removeSelectedUser()));
connect(base->group_buttonDelete, TQT_SIGNAL(clicked()), this, TQT_SLOT(removeSelectedGroup()));
connect(base->machine_buttonDelete, TQT_SIGNAL(clicked()), this, TQT_SLOT(removeSelectedMachine()));
connect(base->service_buttonDelete, TQT_SIGNAL(clicked()), this, TQT_SLOT(removeSelectedService()));
load();
@ -129,9 +139,11 @@ void LDAPConfig::load() {
base->user_ldapRealm->clear();
base->group_ldapRealm->clear();
base->machine_ldapRealm->clear();
base->service_ldapRealm->clear();
base->user_ldapRealm->insertItem("<none>");
base->group_ldapRealm->insertItem("<none>");
base->machine_ldapRealm->insertItem("<none>");
base->service_ldapRealm->insertItem("<none>");
TQStringList cfgRealms = m_systemconfig->groupList();
for (TQStringList::Iterator it(cfgRealms.begin()); it != cfgRealms.end(); ++it) {
if ((*it).startsWith("LDAPRealm-")) {
@ -141,6 +153,7 @@ void LDAPConfig::load() {
base->user_ldapRealm->insertItem(realmName);
base->group_ldapRealm->insertItem(realmName);
base->machine_ldapRealm->insertItem(realmName);
base->service_ldapRealm->insertItem(realmName);
}
}
TQString defaultRealm = m_systemconfig->readEntry("DefaultRealm", TQString::null);
@ -150,6 +163,7 @@ void LDAPConfig::load() {
base->user_ldapRealm->setCurrentItem(i);
base->group_ldapRealm->setCurrentItem(i);
base->machine_ldapRealm->setCurrentItem(i);
base->service_ldapRealm->setCurrentItem(i);
break;
}
}
@ -204,6 +218,19 @@ void LDAPConfig::processLockouts() {
// Think about it...yes you can add the 'add' feature...kadmin 'ank --random-key host/HOSTNAME.FQDN'...
base->machine_buttonAdd->setEnabled(false);
base->machine_buttonModify->setEnabled(false);
lvi = base->service_list->selectedItem();
if (lvi) {
LDAPServiceInfo service = selectedService();
base->service_buttonDelete->setEnabled(!service.tde_builtin_account);
}
else {
base->service_buttonDelete->setEnabled(false);
}
base->service_buttonAdd->setEnabled(true);
// FIXME
// Disable service modify as it is not implemented
base->service_buttonModify->setEnabled(false);
}
void LDAPConfig::connectToRealm(const TQString& realm) {
@ -211,6 +238,7 @@ void LDAPConfig::connectToRealm(const TQString& realm) {
base->user_ldapRealm->setCurrentItem(realm, false, -1);
base->group_ldapRealm->setCurrentItem(realm, false, -1);
base->machine_ldapRealm->setCurrentItem(realm, false, -1);
base->service_ldapRealm->setCurrentItem(realm, false, -1);
if (realm == "<none>") {
abortConnection();
@ -237,9 +265,11 @@ void LDAPConfig::abortConnection() {
base->user_list->clear();
base->group_list->clear();
base->machine_list->clear();
base->service_list->clear();
base->user_ldapRealm->setCurrentItem("<none>", false, -1);
base->group_ldapRealm->setCurrentItem("<none>", false, -1);
base->machine_ldapRealm->setCurrentItem("<none>", false, -1);
base->service_ldapRealm->setCurrentItem("<none>", false, -1);
}
void LDAPConfig::updateAllInformation() {
@ -257,12 +287,19 @@ void LDAPConfig::updateAllInformation() {
abortConnection();
return;
}
else {
if (populateServices() != 0) {
abortConnection();
return;
}
}
}
}
updateUsersList();
updateGroupsList();
updateMachinesList();
updateServicesList();
}
int LDAPConfig::populateUsers() {
@ -283,6 +320,12 @@ int LDAPConfig::populateMachines() {
return retcode;
}
int LDAPConfig::populateServices() {
int retcode;
m_serviceInfoList = m_ldapmanager->services(&retcode);
return retcode;
}
void LDAPConfig::updateUsersList() {
TQListViewItem* itm = base->user_list->selectedItem();
TQString prevSelectedItemText;
@ -347,6 +390,27 @@ void LDAPConfig::updateMachinesList() {
processLockouts();
}
void LDAPConfig::updateServicesList() {
TQListViewItem* itm = base->service_list->selectedItem();
TQString prevSelectedItemText;
if (itm) {
prevSelectedItemText = itm->text(0);
}
base->service_list->clear();
LDAPServiceInfoList::Iterator it;
for (it = m_serviceInfoList.begin(); it != m_serviceInfoList.end(); ++it) {
LDAPServiceInfo service = *it;
itm = new TQListViewItem(base->service_list, service.name, service.machine);
if (prevSelectedItemText != "") {
if (service.name == prevSelectedItemText) {
base->service_list->setSelected(itm, true);
}
}
}
processLockouts();
}
LDAPUserInfo LDAPConfig::findUserInfoByName(TQString name) {
// Figure out which user is selected
LDAPUserInfoList::Iterator it;
@ -383,6 +447,18 @@ LDAPMachineInfo LDAPConfig::findMachineInfoByName(TQString name) {
return LDAPMachineInfo();
}
LDAPServiceInfo LDAPConfig::findServiceInfoByName(TQString name, TQString machine) {
// Figure out which service is selected
LDAPServiceInfoList::Iterator it;
for (it = m_serviceInfoList.begin(); it != m_serviceInfoList.end(); ++it) {
LDAPServiceInfo service = *it;
if ((service.name == name) && (service.machine == machine)) {
return service;
}
}
return LDAPServiceInfo();
}
LDAPUserInfo LDAPConfig::findUserInfoByNameAndUID(TQString name, TQString uid) {
// Figure out which user is selected
LDAPUserInfoList::Iterator it;
@ -443,6 +519,14 @@ LDAPMachineInfo LDAPConfig::selectedMachine() {
return findMachineInfoByName(lvi->text(0));
}
LDAPServiceInfo LDAPConfig::selectedService() {
TQListViewItem* lvi = base->service_list->selectedItem();
if (!lvi) {
return LDAPServiceInfo();
}
return findServiceInfoByName(lvi->text(0), lvi->text(1));
}
LDAPUserInfo LDAPConfig::findUserByDistinguishedName(TQString dn) {
LDAPUserInfoList::Iterator it;
for (it = m_userInfoList.begin(); it != m_userInfoList.end(); ++it) {
@ -476,6 +560,10 @@ LDAPGroupInfoList LDAPConfig::groupList() {
return m_groupInfoList;
}
LDAPMachineInfoList LDAPConfig::machineList() {
return m_machineInfoList;
}
void LDAPConfig::userHighlighted() {
// Show information in the quick view area
LDAPUserInfo user = selectedUser();
@ -524,6 +612,16 @@ void LDAPConfig::machineHighlighted() {
processLockouts();
}
void LDAPConfig::serviceHighlighted() {
// Show information in the quick view area
LDAPServiceInfo service = selectedService();
base->service_name->setText(service.name);
base->service_author->setText(findUserByDistinguishedName(service.creatorsName).name);
processLockouts();
}
void LDAPConfig::addNewUser() {
// Launch a dialog to add the user
LDAPUserInfo user;
@ -636,6 +734,21 @@ void LDAPConfig::addNewGroup() {
updateAllInformation();
}
void LDAPConfig::addNewService() {
// Launch a dialog to add the service
LDAPServiceInfo service;
ServiceConfigDialog serviceconfigdlg(service, this);
if (serviceconfigdlg.exec() == TQDialog::Accepted) {
service = serviceconfigdlg.m_service;
TQString errorstring;
if (m_ldapmanager->addServiceInfo(service, &errorstring) != 0) {
KMessageBox::error(0, i18n("<qt>Unable to add new service!<p>%1</qt>").arg(errorstring), i18n("Internal Failure"));
}
}
updateAllInformation();
}
void LDAPConfig::modifySelectedUser() {
// Launch a dialog to edit the user
LDAPUserInfo user = selectedUser();
@ -724,6 +837,16 @@ void LDAPConfig::removeSelectedMachine() {
updateAllInformation();
}
void LDAPConfig::removeSelectedService() {
LDAPServiceInfo service = selectedService();
if (KMessageBox::warningYesNo(this, i18n("<qt><b>You are about to delete the service %1 for host %2</b><br>This action cannot be undone<p>Are you sure you want to proceed?</qt>").arg(service.name).arg(service.machine), i18n("Confirmation Required")) == KMessageBox::Yes) {
m_ldapmanager->deleteServiceInfo(service);
}
updateAllInformation();
}
TQString readFullLineFromPtyProcess(PtyProcess* proc) {
TQString result = "";
while ((!result.contains("\n")) && (!result.contains(":")) && (!result.contains(">"))) {

@ -56,19 +56,24 @@ class LDAPConfig: public KCModule
int populateUsers();
int populateGroups();
int populateMachines();
int populateServices();
void updateUsersList();
void updateGroupsList();
void updateMachinesList();
void updateServicesList();
void userHighlighted();
void groupHighlighted();
void machineHighlighted();
void serviceHighlighted();
void addNewUser();
void addNewGroup();
void addNewService();
void modifySelectedUser();
void modifySelectedGroup();
void removeSelectedUser();
void removeSelectedGroup();
void removeSelectedMachine();
void removeSelectedService();
void updateAllInformation();
void abortConnection();
@ -76,6 +81,7 @@ class LDAPConfig: public KCModule
LDAPUserInfo findUserInfoByName(TQString name);
LDAPGroupInfo findGroupInfoByName(TQString name);
LDAPMachineInfo findMachineInfoByName(TQString name);
LDAPServiceInfo findServiceInfoByName(TQString name, TQString machine);
LDAPUserInfo findUserInfoByNameAndUID(TQString name, TQString uid);
LDAPGroupInfo findGroupInfoByNameAndGID(TQString name, TQString gid);
LDAPGroupInfo findGroupInfoByGID(TQString gid);
@ -83,11 +89,13 @@ class LDAPConfig: public KCModule
LDAPGroupInfoList findGroupsForUserByDistinguishedName(TQString dn);
LDAPUserInfoList userList();
LDAPGroupInfoList groupList();
LDAPMachineInfoList machineList();
private:
LDAPUserInfo selectedUser();
LDAPGroupInfo selectedGroup();
LDAPMachineInfo selectedMachine();
LDAPServiceInfo selectedService();
int setPasswordForUser(LDAPUserInfo user, TQString *errstr);
private:
@ -100,6 +108,7 @@ class LDAPConfig: public KCModule
LDAPUserInfoList m_userInfoList;
LDAPGroupInfoList m_groupInfoList;
LDAPMachineInfoList m_machineInfoList;
LDAPServiceInfoList m_serviceInfoList;
};
#endif

@ -0,0 +1,89 @@
<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
<class>LDAPServiceConfigBase</class>
<widget class="TQWidget">
<property name="name">
<cstring>LDAPServiceConfigBase</cstring>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>519</width>
<height>356</height>
</rect>
</property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<widget class="TQTabWidget" row="0" column="0">
<property name="name">
<cstring>TabWidget2</cstring>
</property>
<property name="enabled">
<bool>true</bool>
</property>
<widget class="TQWidget">
<property name="name">
<cstring>detailsTab</cstring>
</property>
<attribute name="title">
<string>Kerberos Service</string>
</attribute>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
<widget class="TQLabel" row="0" column="0" colspan="1">
<property name="name">
<cstring>detailsIcon</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
<hsizetype>4</hsizetype>
<vsizetype>5</vsizetype>
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
<widget class="TQLabel" row="0" column="1" colspan="1">
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="text">
<string>Service Name</string>
</property>
</widget>
<widget class="KLineEdit" row="0" column="2" colspan="1">
<property name="name">
<cstring>serviceName</cstring>
</property>
</widget>
<widget class="TQLabel" row="1" column="0" colspan="2">
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="text">
<string>Host Machine</string>
</property>
</widget>
<widget class="KComboBox" row="1" column="2" colspan="2">
<property name="name">
<cstring>hostMachine</cstring>
</property>
</widget>
</grid>
</widget>
</widget>
</grid>
</widget>
<includes>
<include location="local" impldecl="in implementation">LDAPServiceConfigBase.ui.h</include>
</includes>
<includes>
<include location="local" impldecl="in implementation">kdialog.h</include>
</includes>
<layoutdefaults spacing="3" margin="6"/>
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
</UI>

@ -0,0 +1,98 @@
/***************************************************************************
* 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 <klocale.h>
#include <klineedit.h>
#include <ktextedit.h>
#include <knuminput.h>
#include <kactionselector.h>
#include <tqlistbox.h>
#include <kpushbutton.h>
#include <tqpixmap.h>
#include <tqiconset.h>
#include <tqlabel.h>
#include <kurlrequester.h>
#include <kcombobox.h>
#include <tqradiobutton.h>
#include <tqcheckbox.h>
#include <kdatetimewidget.h>
#include <kiconloader.h>
#include "ldapmgr.h"
#include "serviceconfigdlg.h"
ServiceConfigDialog::ServiceConfigDialog(LDAPServiceInfo service, LDAPConfig* parent, const char* name)
: KDialogBase(parent, name, true, i18n("LDAP Service Properties"), Ok|Cancel, Ok, true), m_service(service), m_ldapconfig(parent)
{
int i;
m_base = new LDAPServiceConfigBase(this);
setMainWidget(m_base);
// Populate machine list
LDAPMachineInfoList machineList = m_ldapconfig->machineList();
LDAPMachineInfoList::Iterator it;
for (it = machineList.begin(); it != machineList.end(); ++it) {
LDAPMachineInfo machine = *it;
m_base->hostMachine->insertItem(machine.name, -1);
}
m_base->detailsIcon->setPixmap(SmallIcon("kcmsystem.png"));
connect(m_base->serviceName, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(processLockouts()));
// Update fields
m_base->serviceName->setText(m_service.name);
for (i=0; i<m_base->hostMachine->count(); i++) {
if (m_base->hostMachine->text(i).lower() == m_service.machine.lower()) {
m_base->hostMachine->setCurrentItem(i);
}
}
m_base->serviceName->setFocus();
processLockouts();
}
void ServiceConfigDialog::slotOk() {
// Special handler for new service
if (m_service.distinguishedName == "") {
m_service.name = m_base->serviceName->text();
m_service.machine = m_base->hostMachine->currentText();
}
accept();
}
void ServiceConfigDialog::processLockouts() {
// Special handler for new group
if ((m_service.distinguishedName == "") && (m_base->serviceName->text() == "")) {
enableButton(KDialogBase::Ok, false);
}
else {
enableButton(KDialogBase::Ok, true);
}
}
LDAPServiceInfo ServiceConfigDialog::serviceProperties() {
return m_service;
}
#include "serviceconfigdlg.moc"

@ -0,0 +1,49 @@
/***************************************************************************
* 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 _SERVICECONFIGDIALOG_H_
#define _SERVICECONFIGDIALOG_H_
#include <kdialogbase.h>
#include "libtdeldap.h"
#include "serviceconfigbase.h"
class ServiceConfigDialog : public KDialogBase
{
Q_OBJECT
public:
ServiceConfigDialog(LDAPServiceInfo service, LDAPConfig* parent = 0, const char* name = 0);
LDAPServiceInfo serviceProperties();
public slots:
void slotOk();
void processLockouts();
public:
LDAPServiceConfigBase *m_base;
LDAPServiceInfo m_service;
private:
LDAPConfig* m_ldapconfig;
};
#endif // _SERVICECONFIGDIALOG_H_
Loading…
Cancel
Save