diff --git a/src/ldap.cpp b/src/ldap.cpp index 54e8bff..2cd0d27 100644 --- a/src/ldap.cpp +++ b/src/ldap.cpp @@ -36,16 +36,28 @@ #include "ldap.h" +// FIXME +// Connect this to CMake/Automake +#define KDE_CONFDIR "/etc/trinity" + typedef KGenericFactory ldapFactory; K_EXPORT_COMPONENT_FACTORY( kcm_ldap, ldapFactory("kcmldap")) +KSimpleConfig *systemconfig; + ldap::ldap(TQWidget *parent, const char *name, const TQStringList&) : KCModule(parent, name), myAboutData(0) { - // FIXME - // Add UI base widget to 'this' + TQVBoxLayout *layout = new TQVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint()); + systemconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/ldap/ldapconfigrc" )); + + base = new LDAPConfigBase(this); + layout->add(base); + setRootOnlyMsg(i18n("Bonded LDAP realms take effect system wide, and require administrator access to modify
To alter the system's bonded LDAP realms, click on the \"Administrator Mode\" button below.")); + setUseRootOnlyMsg(true); + load(); KAboutData* about = new KAboutData("ldap", I18N_NOOP("TDE LDAP Manager"), "0.1", @@ -55,9 +67,15 @@ ldap::ldap(TQWidget *parent, const char *name, const TQStringList&) about->addAuthor("Timothy Pearson", 0, "kb9vqf@pearsoncomputing.net"); setAboutData( about ); + + + if (getuid() != 0 || !systemconfig->checkConfigFilesWritable( true )) { + base->systemEnableSupport->setEnabled(false); + } }; ldap::~ldap() { + delete systemconfig; } void ldap::load() { diff --git a/src/ldap.h b/src/ldap.h index 1c041c0..d543cef 100644 --- a/src/ldap.h +++ b/src/ldap.h @@ -29,9 +29,14 @@ #include #include #include +#include #include "ldapconfigbase.h" +#ifdef HAVE_CONFIG_H +#include +#endif + class ldap: public KCModule { Q_OBJECT @@ -50,6 +55,7 @@ class ldap: public KCModule private: KAboutData *myAboutData; KGlobalSettings *kgs; + LDAPConfigBase *base; }; #endif