summaryrefslogtreecommitdiffstats
path: root/src/groupconfigdlg.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <[email protected]>2012-05-29 16:51:56 -0500
committerTimothy Pearson <[email protected]>2012-05-29 16:51:56 -0500
commit68e675057219723d6c657db4fd930c5b49ff583c (patch)
tree97024975d90d419111e9b1c3a27345ac1ac8f816 /src/groupconfigdlg.cpp
parent5948ba909d1a2541865fcb2b52f76a7719f72f3e (diff)
downloadkcmldapmanager-68e675057219723d6c657db4fd930c5b49ff583c.tar.gz
kcmldapmanager-68e675057219723d6c657db4fd930c5b49ff583c.zip
Add RO group editor
Diffstat (limited to 'src/groupconfigdlg.cpp')
-rw-r--r--src/groupconfigdlg.cpp106
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 *
+ * *
+ * 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"