summaryrefslogtreecommitdiffstats
path: root/kabc/ldapconfigwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kabc/ldapconfigwidget.cpp')
-rw-r--r--kabc/ldapconfigwidget.cpp626
1 files changed, 0 insertions, 626 deletions
diff --git a/kabc/ldapconfigwidget.cpp b/kabc/ldapconfigwidget.cpp
deleted file mode 100644
index b0a899d8c..000000000
--- a/kabc/ldapconfigwidget.cpp
+++ /dev/null
@@ -1,626 +0,0 @@
-/*
- This file is part of libkabc.
- Copyright (c) 2004 Szombathelyi György <gyurco@freemail.hu>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-#include <tqapplication.h>
-
-#include <tqobjectlist.h>
-#include <tqcheckbox.h>
-#include <tqlabel.h>
-#include <tqlayout.h>
-#include <tqpushbutton.h>
-#include <tqspinbox.h>
-#include <tqvgroupbox.h>
-#include <tqhbuttongroup.h>
-#include <tqradiobutton.h>
-
-#include <kmessagebox.h>
-#include <kaccelmanager.h>
-#include <kdialogbase.h>
-#include <klocale.h>
-#include <klineedit.h>
-#include <kcombobox.h>
-#include <kprogress.h>
-
-#include <kdebug.h>
-
-#include "ldapconfigwidget.h"
-#include "ldapconfigwidget.moc"
-
-using namespace KABC;
-
-LdapConfigWidget::LdapConfigWidget( TQWidget* parent,
- const char* name, WFlags fl ) : TQWidget( parent, name, fl )
-{
- mProg = 0;
- mFlags = 0;
- mainLayout = new TQGridLayout( this, 12, 4, 0,
- KDialog::spacingHint() );
-}
-
-LdapConfigWidget::LdapConfigWidget( int flags, TQWidget* parent,
- const char* name, WFlags fl ) : TQWidget( parent, name, fl )
-{
- mFlags = flags;
- mProg = 0;
- mainLayout = new TQGridLayout( this, 12, 4, 0,
- KDialog::spacingHint() );
- initWidget();
-}
-
-LdapConfigWidget::~LdapConfigWidget()
-{
-}
-
-void LdapConfigWidget::initWidget()
-{
- TQLabel *label;
-
- mUser = mPassword = mHost = mDn = mBindDN = mRealm = mFilter = 0;
- mPort = mVer = mTimeLimit = mSizeLimit = 0;
- mAnonymous = mSimple = mSASL = mSecNO = mSecTLS = mSecSSL = 0;
- mEditButton = mQueryMech = 0;
- mMech = 0;
- int row = 0;
- int col;
-
- if ( mFlags & W_USER ) {
- label = new TQLabel( i18n( "User:" ), this );
- mUser = new KLineEdit( this, "kcfg_ldapuser" );
-
- mainLayout->addWidget( label, row, 0 );
- mainLayout->addMultiCellWidget( mUser, row, row, 1, 3 );
- row++;
- }
-
- if ( mFlags & W_BINDDN ) {
- label = new TQLabel( i18n( "Bind DN:" ), this );
- mBindDN = new KLineEdit( this, "kcfg_ldapbinddn" );
-
- mainLayout->addWidget( label, row, 0 );
- mainLayout->addMultiCellWidget( mBindDN, row, row, 1, 3 );
- row++;
- }
-
- if ( mFlags & W_REALM ) {
- label = new TQLabel( i18n( "Realm:" ), this );
- mRealm = new KLineEdit( this, "kcfg_ldaprealm" );
-
- mainLayout->addWidget( label, row, 0 );
- mainLayout->addMultiCellWidget( mRealm, row, row, 1, 3 );
- row++;
- }
-
- if ( mFlags & W_PASS ) {
- label = new TQLabel( i18n( "Password:" ), this );
- mPassword = new KLineEdit( this, "kcfg_ldappassword" );
- mPassword->setEchoMode( KLineEdit::Password );
-
- mainLayout->addWidget( label, row, 0 );
- mainLayout->addMultiCellWidget( mPassword, row, row, 1, 3 );
- row++;
- }
-
- if ( mFlags & W_HOST ) {
- label = new TQLabel( i18n( "Host:" ), this );
- mHost = new KLineEdit( this, "kcfg_ldaphost" );
-
- mainLayout->addWidget( label, row, 0 );
- mainLayout->addMultiCellWidget( mHost, row, row, 1, 3 );
- row++;
- }
-
- col = 0;
- if ( mFlags & W_PORT ) {
- label = new TQLabel( i18n( "Port:" ), this );
- mPort = new TQSpinBox( 0, 65535, 1, this, "kcfg_ldapport" );
- mPort->setSizePolicy( TQSizePolicy( TQSizePolicy::Maximum, TQSizePolicy::Preferred ) );
- mPort->setValue( 389 );
-
- mainLayout->addWidget( label, row, col );
- mainLayout->addWidget( mPort, row, col+1 );
- col += 2;
- }
-
- if ( mFlags & W_VER ) {
- label = new TQLabel( i18n( "LDAP version:" ), this );
- mVer = new TQSpinBox( 2, 3, 1, this, "kcfg_ldapver" );
- mVer->setSizePolicy( TQSizePolicy( TQSizePolicy::Maximum, TQSizePolicy::Preferred ) );
- mVer->setValue( 3 );
- mainLayout->addWidget( label, row, col );
- mainLayout->addWidget( mVer, row, col+1 );
- }
- if ( mFlags & ( W_PORT | W_VER ) ) row++;
-
- col = 0;
- if ( mFlags & W_SIZELIMIT ) {
- label = new TQLabel( i18n( "Size limit:" ), this );
- mSizeLimit = new TQSpinBox( 0, 9999999, 1, this, "kcfg_ldapsizelimit" );
- mSizeLimit->setSizePolicy( TQSizePolicy( TQSizePolicy::Maximum, TQSizePolicy::Preferred ) );
- mSizeLimit->setValue( 0 );
- mSizeLimit->setSpecialValueText( i18n("Default") );
- mainLayout->addWidget( label, row, col );
- mainLayout->addWidget( mSizeLimit, row, col+1 );
- col += 2;
- }
-
- if ( mFlags & W_TIMELIMIT ) {
- label = new TQLabel( i18n( "Time limit:" ), this );
- mTimeLimit = new TQSpinBox( 0, 9999999, 1, this, "kcfg_ldaptimelimit" );
- mTimeLimit->setSizePolicy( TQSizePolicy( TQSizePolicy::Maximum, TQSizePolicy::Preferred ) );
- mTimeLimit->setValue( 0 );
- mTimeLimit->setSuffix( i18n(" sec") );
- mTimeLimit->setSpecialValueText( i18n("Default") );
- mainLayout->addWidget( label, row, col );
- mainLayout->addWidget( mTimeLimit, row, col+1 );
- }
- if ( mFlags & ( W_SIZELIMIT | W_TIMELIMIT ) ) row++;
-
- if ( mFlags & W_DN ) {
- label = new TQLabel( i18n( "Distinguished Name", "DN:" ), this );
- mDn = new KLineEdit( this, "kcfg_ldapdn" );
-
- mainLayout->addWidget( label, row, 0 );
- mainLayout->addMultiCellWidget( mDn, row, row, 1, 1 );
- //without host query doesn't make sense
- if ( mHost ) {
- TQPushButton *dnquery = new TQPushButton( i18n( "Query Server" ), this );
- connect( dnquery, TQT_SIGNAL( clicked() ), TQT_SLOT( mQueryDNClicked() ) );
- mainLayout->addMultiCellWidget( dnquery, row, row, 2, 3 );
- }
- row++;
- }
-
- if ( mFlags & W_FILTER ) {
- label = new TQLabel( i18n( "Filter:" ), this );
- mFilter = new KLineEdit( this, "kcfg_ldapfilter" );
-
- mainLayout->addWidget( label, row, 0 );
- mainLayout->addMultiCellWidget( mFilter, row, row, 1, 3 );
- row++;
- }
-
- if ( mFlags & W_SECBOX ) {
- TQHButtonGroup *btgroup = new TQHButtonGroup( i18n( "Security" ), this );
- mSecNO = new TQRadioButton( i18n( "No" ), btgroup, "kcfg_ldapnosec" );
- mSecTLS = new TQRadioButton( i18n( "TLS" ), btgroup, "kcfg_ldaptls" );
- mSecSSL = new TQRadioButton( i18n( "SSL" ), btgroup, "kcfg_ldapssl" );
- mainLayout->addMultiCellWidget( btgroup, row, row, 0, 3 );
-
- connect( mSecNO, TQT_SIGNAL( clicked() ), TQT_SLOT( setLDAPPort() ) );
- connect( mSecTLS, TQT_SIGNAL( clicked() ), TQT_SLOT( setLDAPPort() ) );
- connect( mSecSSL, TQT_SIGNAL( clicked() ), TQT_SLOT( setLDAPSPort( ) ) );
-
- mSecNO->setChecked( true );
- row++;
- }
-
- if ( mFlags & W_AUTHBOX ) {
-
- TQButtonGroup *authbox =
- new TQButtonGroup( 3, Qt::Horizontal, i18n( "Authentication" ), this );
-
- mAnonymous = new TQRadioButton( i18n( "Anonymous" ), authbox, "kcfg_ldapanon" );
- mSimple = new TQRadioButton( i18n( "Simple" ), authbox, "kcfg_ldapsimple" );
- mSASL = new TQRadioButton( i18n( "SASL" ), authbox, "kcfg_ldapsasl" );
-
- label = new TQLabel( i18n( "SASL mechanism:" ), authbox );
- mMech = new KComboBox( false, authbox, "kcfg_ldapsaslmech" );
- mMech->setEditable( true );
- mMech->insertItem( "DIGEST-MD5" );
- mMech->insertItem( "GSSAPI" );
- mMech->insertItem( "PLAIN" );
-
- //without host query doesn't make sense
- if ( mHost ) {
- mQueryMech = new TQPushButton( i18n( "Query Server" ), authbox );
- connect( mQueryMech, TQT_SIGNAL( clicked() ), TQT_SLOT( mQueryMechClicked() ) );
- }
-
- mainLayout->addMultiCellWidget( authbox, row, row+1, 0, 3 );
-
- connect( mAnonymous, TQT_SIGNAL( stateChanged(int) ), TQT_SLOT( setAnonymous(int) ) );
- connect( mSimple, TQT_SIGNAL( stateChanged(int) ), TQT_SLOT( setSimple(int) ) );
- connect( mSASL, TQT_SIGNAL( stateChanged(int) ), TQT_SLOT( setSASL(int) ) );
-
- mAnonymous->setChecked( true );
- }
-
-}
-
-void LdapConfigWidget::loadData( KIO::Job*, const TQByteArray& d )
-{
- LDIF::ParseVal ret;
-
- if ( d.size() ) {
- mLdif.setLDIF( d );
- } else {
- mLdif.endLDIF();
- }
- do {
- ret = mLdif.nextItem();
- if ( ret == LDIF::Item && mLdif.attr().lower() == mAttr ) {
- mProg->progressBar()->advance( 1 );
- mQResult.push_back( TQString::fromUtf8( mLdif.val(), mLdif.val().size() ) );
- }
- } while ( ret != LDIF::MoreData );
-}
-
-void LdapConfigWidget::loadResult( KIO::Job* job)
-{
- int error = job->error();
- if ( error && error != KIO::ERR_USER_CANCELED )
- mErrorMsg = job->errorString();
- else
- mErrorMsg = "";
-
- mCancelled = false;
- mProg->close();
-}
-
-void LdapConfigWidget::sendQuery()
-{
- LDAPUrl _url;
-
- mQResult.clear();
- mCancelled = true;
-
- _url.setProtocol( ( mSecSSL && mSecSSL->isChecked() ) ? "ldaps" : "ldap" );
- if ( mHost ) _url.setHost( mHost->text() );
- if ( mPort ) _url.setPort( mPort->value() );
- _url.setDn( "" );
- _url.setAttributes( mAttr );
- _url.setScope( LDAPUrl::Base );
- if ( mVer ) _url.setExtension( "x-ver", TQString::number( mVer->value() ) );
- if ( mSecTLS && mSecTLS->isChecked() ) _url.setExtension( "x-tls", "" );
-
- kdDebug(5700) << "sendQuery url: " << _url.prettyURL() << endl;
- mLdif.startParsing();
- KIO::Job *job = KIO::get( _url, true, false );
- job->addMetaData("no-auth-prompt","true");
- connect( job, TQT_SIGNAL( data( KIO::Job*, const TQByteArray& ) ),
- this, TQT_SLOT( loadData( KIO::Job*, const TQByteArray& ) ) );
- connect( job, TQT_SIGNAL( result( KIO::Job* ) ),
- this, TQT_SLOT( loadResult( KIO::Job* ) ) );
-
- if ( mProg == NULL )
- mProg = new KProgressDialog( this, 0, i18n("LDAP Query"), _url.prettyURL(), true );
- else
- mProg->setLabel( _url.prettyURL() );
- mProg->progressBar()->setValue( 0 );
- mProg->progressBar()->setTotalSteps( 1 );
- mProg->exec();
- if ( mCancelled ) {
- kdDebug(5700) << "query cancelled!" << endl;
- job->kill( true );
- } else {
- if ( !mErrorMsg.isEmpty() ) KMessageBox::error( this, mErrorMsg );
- }
-}
-
-void LdapConfigWidget::mQueryMechClicked()
-{
- mAttr = "supportedsaslmechanisms";
- sendQuery();
- if ( !mQResult.isEmpty() ) {
- mQResult.sort();
- mMech->clear();
- mMech->insertStringList( mQResult );
- }
-}
-
-void LdapConfigWidget::mQueryDNClicked()
-{
- mAttr = "namingcontexts";
- sendQuery();
- if ( !mQResult.isEmpty() ) mDn->setText( mQResult.first() );
-}
-
-void LdapConfigWidget::setAnonymous( int state )
-{
- if ( state == TQButton::Off ) return;
- if ( mUser ) mUser->setEnabled(false);
- if ( mPassword ) mPassword->setEnabled(false);
- if ( mBindDN ) mBindDN->setEnabled(false);
- if ( mRealm ) mRealm->setEnabled(false);
- if ( mMech ) mMech->setEnabled(false);
- if ( mQueryMech ) mQueryMech->setEnabled(false);
-}
-
-void LdapConfigWidget::setSimple( int state )
-{
- if ( state == TQButton::Off ) return;
- if ( mUser ) mUser->setEnabled(true);
- if ( mPassword ) mPassword->setEnabled(true);
- if ( mBindDN ) mBindDN->setEnabled(false);
- if ( mRealm ) mRealm->setEnabled(false);
- if ( mMech ) mMech->setEnabled(false);
- if ( mQueryMech ) mQueryMech->setEnabled(false);
-}
-
-void LdapConfigWidget::setSASL( int state )
-{
- if ( state == TQButton::Off ) return;
- if ( mUser ) mUser->setEnabled(true);
- if ( mPassword ) mPassword->setEnabled(true);
- if ( mBindDN ) mBindDN->setEnabled(true);
- if ( mRealm ) mRealm->setEnabled(true);
- if ( mMech ) mMech->setEnabled(true);
- if ( mQueryMech ) mQueryMech->setEnabled(true);
-}
-
-void LdapConfigWidget::setLDAPPort()
-{
- mPort->setValue( 389 );
-}
-
-void LdapConfigWidget::setLDAPSPort()
-{
- mPort->setValue( 636 );
-}
-
-
-LDAPUrl LdapConfigWidget::url() const
-{
- LDAPUrl _url;
- if ( mSecSSL && mSecSSL->isChecked() )
- _url.setProtocol( "ldaps" );
- else
- _url.setProtocol( "ldap" );
-
- if ( mUser ) _url.setUser( mUser->text() );
- if ( mPassword ) _url.setPass( mPassword->text() );
- if ( mHost ) _url.setHost( mHost->text() );
- if ( mPort ) _url.setPort( mPort->value() );
- if ( mDn ) _url.setDn( mDn->text() );
- if ( mVer ) _url.setExtension( "x-ver", TQString::number( mVer->value() ) );
- if ( mSizeLimit && mSizeLimit->value() != 0 )
- _url.setExtension( "x-sizelimit", TQString::number( mSizeLimit->value() ) );
- if ( mTimeLimit && mTimeLimit->value() != 0 )
- _url.setExtension( "x-timelimit", TQString::number( mTimeLimit->value() ) );
- if ( mSecTLS && mSecTLS->isChecked() ) _url.setExtension( "x-tls","" );
- if ( mFilter && !mFilter->text().isEmpty() )
- _url.setFilter( mFilter->text() );
- if ( mSASL && mSASL->isChecked() ) {
- _url.setExtension( "x-sasl", "" );
- _url.setExtension( "x-mech", mMech->currentText() );
- if ( mBindDN && !mBindDN->text().isEmpty() )
- _url.setExtension( "bindname", mBindDN->text() );
- if ( mRealm && !mRealm->text().isEmpty() )
- _url.setExtension( "x-realm", mRealm->text() );
- }
- return ( _url );
-}
-
-void LdapConfigWidget::setUser( const TQString &user )
-{
- if ( mUser ) mUser->setText( user );
-}
-
-TQString LdapConfigWidget::user() const
-{
- return ( mUser ? mUser->text() : TQString::null );
-}
-
-void LdapConfigWidget::setPassword( const TQString &password )
-{
- if ( mPassword ) mPassword->setText( password );
-}
-
-TQString LdapConfigWidget::password() const
-{
- return ( mPassword ? mPassword->text() : TQString::null );
-}
-
-void LdapConfigWidget::setBindDN( const TQString &binddn )
-{
- if ( mBindDN ) mBindDN->setText( binddn );
-}
-
-TQString LdapConfigWidget::bindDN() const
-{
- return ( mBindDN ? mBindDN->text() : TQString::null );
-}
-
-void LdapConfigWidget::setRealm( const TQString &realm )
-{
- if ( mRealm ) mRealm->setText( realm );
-}
-
-TQString LdapConfigWidget::realm() const
-{
- return ( mRealm ? mRealm->text() : TQString::null );
-}
-
-void LdapConfigWidget::setHost( const TQString &host )
-{
- if ( mHost ) mHost->setText( host );
-}
-
-TQString LdapConfigWidget::host() const
-{
- return ( mHost ? mHost->text() : TQString::null );
-}
-
-void LdapConfigWidget::setPort( int port )
-{
- if ( mPort ) mPort->setValue( port );
-}
-
-int LdapConfigWidget::port() const
-{
- return ( mPort ? mPort->value() : 389 );
-}
-
-void LdapConfigWidget::setVer( int ver )
-{
- if ( mVer ) mVer->setValue( ver );
-}
-
-int LdapConfigWidget::ver() const
-{
- return ( mVer ? mVer->value() : 3 );
-}
-
-void LdapConfigWidget::setDn( const TQString &dn )
-{
- if ( mDn ) mDn->setText( dn );
-}
-
-TQString LdapConfigWidget::dn() const
-{
- return ( mDn ? mDn->text() : TQString::null );
-}
-
-void LdapConfigWidget::setFilter( const TQString &filter )
-{
- if ( mFilter ) mFilter->setText( filter );
-}
-
-TQString LdapConfigWidget::filter() const
-{
- return ( mFilter ? mFilter->text() : TQString::null );
-}
-
-void LdapConfigWidget::setMech( const TQString &mech )
-{
- if ( mMech == 0 ) return;
- if ( !mech.isEmpty() ) {
- int i = 0;
- while ( i < mMech->count() ) {
- if ( mMech->text( i ) == mech ) break;
- i++;
- }
- if ( i == mMech->count() ) mMech->insertItem( mech );
- mMech->setCurrentItem( i );
- }
-}
-
-TQString LdapConfigWidget::mech() const
-{
- return ( mMech ? mMech->currentText() : TQString::null );
-}
-
-void LdapConfigWidget::setSecNO( bool b )
-{
- if ( mSecNO ) mSecNO->setChecked( b );
-}
-
-bool LdapConfigWidget::isSecNO() const
-{
- return ( mSecNO ? mSecNO->isChecked() : true );
-}
-
-void LdapConfigWidget::setSecTLS( bool b )
-{
- if ( mSecTLS ) mSecTLS->setChecked( b );
-}
-
-bool LdapConfigWidget::isSecTLS() const
-{
- return ( mSecTLS ? mSecTLS->isChecked() : false );
-}
-
-void LdapConfigWidget::setSecSSL( bool b )
-{
- if ( mSecSSL ) mSecSSL->setChecked( b );
-}
-
-bool LdapConfigWidget::isSecSSL() const
-{
- return ( mSecSSL ? mSecSSL->isChecked() : false );
-}
-
-void LdapConfigWidget::setAuthAnon( bool b )
-{
- if ( mAnonymous ) mAnonymous->setChecked( b );
-}
-
-bool LdapConfigWidget::isAuthAnon() const
-{
- return ( mAnonymous ? mAnonymous->isChecked() : true );
-}
-
-void LdapConfigWidget::setAuthSimple( bool b )
-{
- if ( mSimple ) mSimple->setChecked( b );
-}
-
-bool LdapConfigWidget::isAuthSimple() const
-{
- return ( mSimple ? mSimple->isChecked() : false );
-}
-
-void LdapConfigWidget::setAuthSASL( bool b )
-{
- if ( mSASL ) mSASL->setChecked( b );
-}
-
-bool LdapConfigWidget::isAuthSASL() const
-{
- return ( mSASL ? mSASL->isChecked() : false );
-}
-
-void LdapConfigWidget::setSizeLimit( int sizelimit )
-{
- if ( mSizeLimit ) mSizeLimit->setValue( sizelimit );
-}
-
-int LdapConfigWidget::sizeLimit() const
-{
- return ( mSizeLimit ? mSizeLimit->value() : 0 );
-}
-
-void LdapConfigWidget::setTimeLimit( int timelimit )
-{
- if ( mTimeLimit ) mTimeLimit->setValue( timelimit );
-}
-
-int LdapConfigWidget::timeLimit() const
-{
- return ( mTimeLimit ? mTimeLimit->value() : 0 );
-}
-
-int LdapConfigWidget::flags() const
-{
- return mFlags;
-}
-
-void LdapConfigWidget::setFlags( int flags )
-{
- mFlags = flags;
-
- // First delete all the child widgets.
- // FIXME: I hope it's correct
- const TQObjectList ch = childrenListObject();
- TQObjectList ch2 = ch;
- TQObject *obj;
- TQWidget *widget;
-
- obj = ch2.first();
- while ( obj != 0 ) {
- widget = dynamic_cast<TQWidget*> (obj);
- if ( widget && TQT_BASE_OBJECT(widget->parent()) == TQT_BASE_OBJECT(this) ) {
- mainLayout->remove( widget );
- delete ( widget );
- }
- obj = ch2.next();
- }
- // Re-create child widgets according to the new flags
- initWidget();
-}