summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ldapcontroller.cpp45
-rw-r--r--src/ldapcontroller.desktop4
-rw-r--r--src/ldapcontroller.h9
-rw-r--r--src/ldapcontrollerconfigbase.ui12
4 files changed, 61 insertions, 9 deletions
diff --git a/src/ldapcontroller.cpp b/src/ldapcontroller.cpp
index addb8ad..b8a75a8 100644
--- a/src/ldapcontroller.cpp
+++ b/src/ldapcontroller.cpp
@@ -33,9 +33,14 @@
#include <kio/job.h>
#include <tqdir.h>
#include <tqheader.h>
+#include <kcombobox.h>
#include "ldapcontroller.h"
+// FIXME
+// Connect this to CMake/Automake
+#define KDE_CONFDIR "/etc/trinity"
+
typedef KGenericFactory<LDAPController, TQWidget> ldapFactory;
K_EXPORT_COMPONENT_FACTORY( kcm_ldapcontroller, ldapFactory("kcmldapcontroller"))
@@ -43,11 +48,10 @@ K_EXPORT_COMPONENT_FACTORY( kcm_ldapcontroller, ldapFactory("kcmldapcontroller")
LDAPController::LDAPController(TQWidget *parent, const char *name, const TQStringList&)
: KCModule(parent, name), myAboutData(0)
{
- // FIXME
- // Add UI base widget to 'this'
-
- load();
-
+ TQVBoxLayout *layout = new TQVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
+ m_systemconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/ldap/ldapconfigrc" ));
+ m_systemconfig->setFileWriteMode(S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+
KAboutData* about = new KAboutData("ldapcontroller", I18N_NOOP("TDE LDAP Controller"), "0.1",
I18N_NOOP("TDE LDAP Controller Control Panel Module"),
KAboutData::License_GPL,
@@ -55,11 +59,42 @@ LDAPController::LDAPController(TQWidget *parent, const char *name, const TQStrin
about->addAuthor("Timothy Pearson", 0, "kb9vqf@pearsoncomputing.net");
setAboutData( about );
+
+ m_base = new LDAPControllerConfigBase(this);
+ layout->add(m_base);
+
+ m_base->systemRole->clear();
+ m_base->systemRole->insertItem("Workstation", -1);
+ m_base->systemRole->insertItem("Realm Controller", -1);
+ m_base->systemRole->setCurrentItem(0);
+
+ setRootOnlyMsg(i18n("<b>LDAP controller settings take effect system wide, and require administrator access to modify</b><br>To alter the system's realm controller settings, click on the \"Administrator Mode\" button below."));
+ setUseRootOnlyMsg(true);
+
+ connect(m_base->systemRole, TQT_SIGNAL(activated(const TQString&)), this, TQT_SLOT(systemRoleChanged()));
+
+ load();
+
+ if (getuid() != 0 || !m_systemconfig->checkConfigFilesWritable( true )) {
+ m_base->systemRole->setEnabled(false);
+ }
+
+ processLockouts();
};
LDAPController::~LDAPController() {
}
+void LDAPController::systemRoleChanged() {
+ // RAJA FIXME
+ // Verify that this workstation was not already bonded to an LDAP realm!
+ changed();
+}
+
+void LDAPController::processLockouts() {
+ //
+}
+
void LDAPController::load() {
//
}
diff --git a/src/ldapcontroller.desktop b/src/ldapcontroller.desktop
index 006b8b5..38f9c0c 100644
--- a/src/ldapcontroller.desktop
+++ b/src/ldapcontroller.desktop
@@ -6,8 +6,10 @@ Type=Application
X-KDE-ModuleType=Library
X-KDE-Library=ldapcontroller
-X-KDE-HasReadOnlyMode=false
+X-KDE-HasReadOnlyMode=true
X-KDE-ParentApp=kcontrol
+X-KDE-RootOnly=true
+X-KDE-SubstituteUID=true
[Desktop Entry]
Encoding=UTF-8
diff --git a/src/ldapcontroller.h b/src/ldapcontroller.h
index 9fdac57..9af7f42 100644
--- a/src/ldapcontroller.h
+++ b/src/ldapcontroller.h
@@ -30,7 +30,7 @@
#include <tqpushbutton.h>
#include <tqcombobox.h>
-#include "ldapconfigbase.h"
+#include "ldapcontrollerconfigbase.h"
class LDAPController: public KCModule
{
@@ -47,8 +47,15 @@ class LDAPController: public KCModule
virtual TQString quickHelp() const;
virtual const KAboutData *aboutData() const { return myAboutData; };
+ private slots:
+ void systemRoleChanged();
+ void processLockouts();
+
private:
KAboutData *myAboutData;
+
+ LDAPControllerConfigBase *m_base;
+ KSimpleConfig *m_systemconfig;
};
#endif // _LDAPCONTROLLER_H_
diff --git a/src/ldapcontrollerconfigbase.ui b/src/ldapcontrollerconfigbase.ui
index ecb0d87..6dc2462 100644
--- a/src/ldapcontrollerconfigbase.ui
+++ b/src/ldapcontrollerconfigbase.ui
@@ -28,7 +28,7 @@
<cstring>tab</cstring>
</property>
<attribute name="title">
- <string>LDAP Realms</string>
+ <string>LDAP Role</string>
</attribute>
<grid>
<property name="name">
@@ -45,7 +45,15 @@
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="KComboBox" row="0" column="0" colspan="2">
+ <widget class="TQLabel" row="0" column="0" colspan="1">
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="text">
+ <cstring>System Role:</cstring>
+ </property>
+ </widget>
+ <widget class="KComboBox" row="0" column="1" colspan="1">
<property name="name">
<cstring>systemRole</cstring>
</property>