diff options
Diffstat (limited to 'kdesktop/lock')
-rw-r--r-- | kdesktop/lock/lockdlg.cpp | 24 | ||||
-rw-r--r-- | kdesktop/lock/lockprocess.cpp | 37 | ||||
-rw-r--r-- | kdesktop/lock/lockprocess.h | 11 |
3 files changed, 55 insertions, 17 deletions
diff --git a/kdesktop/lock/lockdlg.cpp b/kdesktop/lock/lockdlg.cpp index e8d3c19b7..961442506 100644 --- a/kdesktop/lock/lockdlg.cpp +++ b/kdesktop/lock/lockdlg.cpp @@ -44,7 +44,10 @@ #include <tqlistview.h> #include <tqheader.h> #include <tqcheckbox.h> +#ifdef __TDE_HAVE_TDEHWLIB #include <tqfile.h> +#include <tdecryptographiccarddevice.h> +#endif #include <ctype.h> #include <unistd.h> @@ -99,6 +102,7 @@ PasswordDlg::PasswordDlg(LockProcess *parent, GreeterPluginHandle *plugin, TQDat mPlugin( plugin ), mCapsLocked(-1), mUnlockingFailed(false), + validUserCardInserted(false), showInfoMessages(true), mCardLoginInProgress(false) { @@ -477,6 +481,7 @@ void PasswordDlg::reapVerify() switch (WEXITSTATUS(status)) { case AuthOk: { +#ifdef __TDE_HAVE_TDEHWLIB KUser userinfo; TQString fileName = userinfo.homeDir() + "/.tde_card_login_state"; TQFile flagFile(fileName); @@ -491,6 +496,7 @@ void PasswordDlg::reapVerify() // Card was not used to log in flagFile.remove(); } +#endif // Signal success greet->succeeded(); @@ -553,6 +559,7 @@ void PasswordDlg::handleVerify() setFixedSize( sizeHint().width(), sizeHint().height() + 1 ); setFixedSize( sizeHint() ); +#ifdef __TDE_HAVE_TDEHWLIB // Check if cryptographic card login is being used if (mCardLoginInProgress) { // Attempt authentication if configured @@ -566,6 +573,7 @@ void PasswordDlg::handleVerify() } mCardLoginInProgress = false; } +#endif } else { greet->textPrompt( arr, false, false ); @@ -972,7 +980,12 @@ void PasswordDlg::capsLocked() } void PasswordDlg::attemptCardLogin() { -#ifdef HAVE_KRB5 +#ifdef __TDE_HAVE_TDEHWLIB +#ifndef HAVE_KRB5 + // Don't enable card-based logins if Kerberos integration was disabled + return; +#endif + // Make sure card logins are enabled before attempting one KSimpleConfig *systemconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/ldap/ldapconfigrc" )); systemconfig->setGroup(NULL); @@ -982,10 +995,6 @@ void PasswordDlg::attemptCardLogin() { { return; } -#else - // Don't enable card-based logins if Kerberos integration was disabled - return; -#endif if (mCardLoginInProgress) { return; @@ -1007,9 +1016,11 @@ void PasswordDlg::attemptCardLogin() { greet->start(); greet->setPassword(""); TQTimer::singleShot(0, this, SLOT(slotOK())); +#endif } void PasswordDlg::resetCardLogin() { +#ifdef __TDE_HAVE_TDEHWLIB validUserCardInserted = false; greet->abort(); greet->clear(); @@ -1022,9 +1033,10 @@ void PasswordDlg::resetCardLogin() { setFixedSize(sizeHint()); // Restore information message display settings - greet->setInfoMessageDisplay(showInfoMessages); + greet->setInfoMessageDisplay(showInfoMessages); mCardLoginInProgress = false; +#endif } #include "lockdlg.moc" diff --git a/kdesktop/lock/lockprocess.cpp b/kdesktop/lock/lockprocess.cpp index fdde3fc9e..bb68186cb 100644 --- a/kdesktop/lock/lockprocess.cpp +++ b/kdesktop/lock/lockprocess.cpp @@ -17,6 +17,14 @@ //some image will be corrupted). #include <config.h> +#include <tdeglobal.h> + +#ifdef __TDE_HAVE_TDEHWLIB +#include <ksslcertificate.h> +#include <kuser.h> +#include <tdehardwaredevices.h> +#include <tdecryptographiccarddevice.h> +#endif #include "lockprocess.h" #include "lockdlg.h" @@ -34,7 +42,6 @@ #include <tdeapplication.h> #include <kservicegroup.h> #include <kdebug.h> -#include <kuser.h> #include <tdemessagebox.h> #include <tdeglobalsettings.h> #include <tdelocale.h> @@ -291,6 +298,7 @@ LockProcess::LockProcess() } } +#ifdef __TDE_HAVE_TDEHWLIB // Initialize SmartCard readers TDEGenericDevice *hwdevice; TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); @@ -303,6 +311,7 @@ LockProcess::LockProcess() cdevice->enableCardMonitoring(true); // cdevice->enablePINEntryCallbacks(true); } +#endif #ifdef KEEP_MOUSE_UNGRABBED setEnabled(false); @@ -2823,6 +2832,7 @@ void LockProcess::processInputPipeCommand(TQString inputcommand) { } void LockProcess::cryptographicCardInserted(TDECryptographicCardDevice* cdevice) { +#ifdef __TDE_HAVE_TDEHWLIB TQString login_name = TQString::null; X509CertificatePtrList certList = cdevice->cardX509Certificates(); if (certList.count() > 0) { @@ -2856,9 +2866,11 @@ void LockProcess::cryptographicCardInserted(TDECryptographicCardDevice* cdevice) } } } +#endif } void LockProcess::cryptographicCardRemoved(TDECryptographicCardDevice* cdevice) { +#ifdef __TDE_HAVE_TDEHWLIB PasswordDlg* passDlg = dynamic_cast<PasswordDlg*>(currentDialog); if (passDlg) { passDlg->resetCardLogin(); @@ -2867,9 +2879,12 @@ void LockProcess::cryptographicCardRemoved(TDECryptographicCardDevice* cdevice) m_loginCardDevice = NULL; TQTimer::singleShot(0, this, SLOT(signalPassDlgToAttemptCardAbort())); } +#endif } -void LockProcess::signalPassDlgToAttemptCardLogin() { +void LockProcess::signalPassDlgToAttemptCardLogin() +{ +#ifdef __TDE_HAVE_TDEHWLIB PasswordDlg* passDlg = dynamic_cast<PasswordDlg*>(currentDialog); if (passDlg && m_loginCardDevice) { passDlg->attemptCardLogin(); @@ -2880,9 +2895,12 @@ void LockProcess::signalPassDlgToAttemptCardLogin() { TQTimer::singleShot(0, this, SLOT(signalPassDlgToAttemptCardLogin())); } } +#endif } -void LockProcess::signalPassDlgToAttemptCardAbort() { +void LockProcess::signalPassDlgToAttemptCardAbort() +{ +#ifdef __TDE_HAVE_TDEHWLIB PasswordDlg* passDlg = dynamic_cast<PasswordDlg*>(currentDialog); if (passDlg) { passDlg->resetCardLogin(); @@ -2893,9 +2911,12 @@ void LockProcess::signalPassDlgToAttemptCardAbort() { TQTimer::singleShot(0, this, SLOT(signalPassDlgToAttemptCardAbort())); } } +#endif } -void LockProcess::cryptographicCardPinRequested(TQString prompt, TDECryptographicCardDevice* cdevice) { +void LockProcess::cryptographicCardPinRequested(TQString prompt, TDECryptographicCardDevice* cdevice) +{ +#ifdef __TDE_HAVE_TDEHWLIB TQCString password; TQString pin_entry; @@ -2911,10 +2932,16 @@ void LockProcess::cryptographicCardPinRequested(TQString prompt, TDECryptographi else { cdevice->setProvidedPin(TQString::null); } +#endif } -TDECryptographicCardDevice* LockProcess::cryptographicCardDevice() { +TDECryptographicCardDevice* LockProcess::cryptographicCardDevice() +{ +#ifdef __TDE_HAVE_TDEHWLIB return m_loginCardDevice; +#else + return NULL; +#endif } void LockProcess::fullyOnline() { diff --git a/kdesktop/lock/lockprocess.h b/kdesktop/lock/lockprocess.h index 4dc2d8bab..ff017b0a1 100644 --- a/kdesktop/lock/lockprocess.h +++ b/kdesktop/lock/lockprocess.h @@ -10,13 +10,7 @@ #ifndef __LOCKENG_H__ #define __LOCKENG_H__ -#include <ksslcertificate.h> - -#include <tdehardwaredevices.h> -#include <tdecryptographiccarddevice.h> - #include <kgreeterplugin.h> - #include <kprocess.h> #include <kpixmap.h> #include <krootpixmap.h> @@ -35,6 +29,11 @@ class KLibrary; class KWinModule; class KSMModalDialog; class LockProcess; +#ifdef __TDE_HAVE_TDEHWLIB +class TDECryptographicCardDevice; +#else +#define TDECryptographicCardDevice void +#endif struct GreeterPluginHandle { KLibrary *library; |