/***************************************************************************
* Copyright ( C ) 2012 by Timothy Pearson *
* kb9vqf @ pearsoncomputing . net *
* *
* 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 <tqlayout.h>
# include <klocale.h>
# include <kglobal.h>
# include <kparts/genericfactory.h>
# include <ksimpleconfig.h>
# include <kglobalsettings.h>
# include <kstandarddirs.h>
# include <kurlrequester.h>
# include <klistview.h>
# include <kopenwith.h>
# include <kpropertiesdialog.h>
# 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 " ) )
LDAPController : : LDAPController ( TQWidget * parent , const char * name , const TQStringList & )
: KCModule ( parent , name ) , myAboutData ( 0 )
{
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 ,
I18N_NOOP ( " (c) 2012 Timothy Pearson " ) , 0 , 0 ) ;
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 ( ) {
//
}
void LDAPController : : defaults ( ) {
//
}
void LDAPController : : save ( ) {
//
}
int LDAPController : : buttons ( ) {
return KCModule : : Apply | KCModule : : Help ;
}
TQString LDAPController : : quickHelp ( ) const
{
return i18n ( " This module configures an LDAP Realm Controller. " ) ;
}