diff options
author | Timothy Pearson <[email protected]> | 2012-05-29 16:51:56 -0500 |
---|---|---|
committer | Timothy Pearson <[email protected]> | 2012-05-29 16:51:56 -0500 |
commit | 68e675057219723d6c657db4fd930c5b49ff583c (patch) | |
tree | 97024975d90d419111e9b1c3a27345ac1ac8f816 /src/groupconfigdlg.cpp | |
parent | 5948ba909d1a2541865fcb2b52f76a7719f72f3e (diff) | |
download | kcmldapmanager-68e675057219723d6c657db4fd930c5b49ff583c.tar.gz kcmldapmanager-68e675057219723d6c657db4fd930c5b49ff583c.zip |
Add RO group editor
Diffstat (limited to 'src/groupconfigdlg.cpp')
-rw-r--r-- | src/groupconfigdlg.cpp | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/groupconfigdlg.cpp b/src/groupconfigdlg.cpp new file mode 100644 index 0000000..8f7593e --- /dev/null +++ b/src/groupconfigdlg.cpp @@ -0,0 +1,106 @@ +/*************************************************************************** + * Copyright (C) 2012 by Timothy Pearson * + * [email protected] * + * * + * 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 "ldapmgr.h" +#include "groupconfigdlg.h" + +GroupConfigDialog::GroupConfigDialog(LDAPGroupInfo group, LDAPConfig* parent, const char* name) + : KDialogBase(parent, name, true, i18n("LDAP Group Properties"), Ok|Cancel, Ok, true), m_group(group), m_ldapconfig(parent) +{ + m_base = new LDAPGroupConfigBase(this); + setMainWidget(m_base); + + m_base->addToGroup->setText(i18n("-->")); + m_base->removeFromGroup->setText(i18n("<--")); + m_base->groupName->setEnabled(false); + + connect(m_base->addToGroup, TQT_SIGNAL(clicked()), this, TQT_SLOT(addSelectedUserToGroup())); + connect(m_base->removeFromGroup, TQT_SIGNAL(clicked()), this, TQT_SLOT(removeSelectedUserFromGroup())); + + // Update fields + m_base->groupName->setText(m_group.name); + m_base->groupID->setValue(m_group.gid); + + LDAPUserInfoList userList = m_ldapconfig->userList(); + LDAPUserInfoList::Iterator it; + for (it = userList.begin(); it != userList.end(); ++it) { + LDAPUserInfo user = *it; + if (group.userlist.contains(user.distinguishedName)) { + (void)new TQListBoxText(m_base->selectedAccounts, user.name); + } + else { + (void)new TQListBoxText(m_base->availableAccounts, user.name); + } + } + m_base->availableAccounts->sort(true); + m_base->selectedAccounts->sort(true); + + processLockouts(); +} + +void GroupConfigDialog::slotOk() { + accept(); +} + +void GroupConfigDialog::processLockouts() { + // +} + +void GroupConfigDialog::addSelectedUserToGroup() { + TQListBoxText* itm = dynamic_cast<TQListBoxText*>(m_base->availableAccounts->selectedItem()); + if (itm) { + (void)new TQListBoxText(m_base->selectedAccounts, itm->text()); + delete itm; + } + m_base->availableAccounts->sort(true); + m_base->selectedAccounts->sort(true); +} + +void GroupConfigDialog::removeSelectedUserFromGroup() { + TQListBoxText* itm = dynamic_cast<TQListBoxText*>(m_base->selectedAccounts->selectedItem()); + if (itm) { + (void)new TQListBoxText(m_base->availableAccounts, itm->text()); + delete itm; + } + m_base->availableAccounts->sort(true); + m_base->selectedAccounts->sort(true); +} + +LDAPGroupInfo GroupConfigDialog::groupProperties() { + return m_group; +} + +#include "groupconfigdlg.moc" |