summaryrefslogtreecommitdiffstats
path: root/kdesktop/lock
diff options
context:
space:
mode:
Diffstat (limited to 'kdesktop/lock')
-rw-r--r--kdesktop/lock/lockdlg.cpp24
-rw-r--r--kdesktop/lock/lockprocess.cpp37
-rw-r--r--kdesktop/lock/lockprocess.h11
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;