diff options
-rw-r--r-- | src/ldapcontroller.cpp | 45 | ||||
-rw-r--r-- | src/ldapcontroller.desktop | 4 | ||||
-rw-r--r-- | src/ldapcontroller.h | 9 | ||||
-rw-r--r-- | src/ldapcontrollerconfigbase.ui | 12 |
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> |