summaryrefslogtreecommitdiffstats
path: root/tdm/kfrontend/kgreeter.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2015-10-02 19:58:14 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2015-10-02 19:58:14 -0500
commit37b6d0d80ff63156326d46ba1e0a19f3b7c02e5b (patch)
treecb73e51e4ec907e2721bbdc305d7d0024c21ded1 /tdm/kfrontend/kgreeter.cpp
parent48cf3058c5543a65026cb1cc9d8fc7450c4ccc68 (diff)
downloadtdebase-37b6d0d80ff63156326d46ba1e0a19f3b7c02e5b.tar.gz
tdebase-37b6d0d80ff63156326d46ba1e0a19f3b7c02e5b.zip
Fix cryptographic card login process
Diffstat (limited to 'tdm/kfrontend/kgreeter.cpp')
-rw-r--r--tdm/kfrontend/kgreeter.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/tdm/kfrontend/kgreeter.cpp b/tdm/kfrontend/kgreeter.cpp
index e14e58491..3fdbc6042 100644
--- a/tdm/kfrontend/kgreeter.cpp
+++ b/tdm/kfrontend/kgreeter.cpp
@@ -869,6 +869,12 @@ void KGreeter::cryptographicCardInserted(TDECryptographicCardDevice* cdevice) {
}
if (login_name != "") {
+ if (verify->cardLoginInProgress) {
+ return;
+ }
+ verify->cardLoginInProgress = true;
+ verify->cardLoginDevice = cdevice;
+
DM dm;
SessList sess;
bool vt_active = false;
@@ -903,12 +909,10 @@ void KGreeter::cryptographicCardInserted(TDECryptographicCardDevice* cdevice) {
cardLoginUser = login_name;
verify->setPasswordPrompt(i18n("PIN:"));
- TQString autoPIN = cdevice->autoPIN();
- if (autoPIN != TQString::null) {
- // Initiate login
- verify->setPassword(autoPIN);
- verify->accept();
- }
+ // Bypass initial password prompt
+ verify->start();
+ verify->setPassword("");
+ verify->accept();
}
}
}
@@ -921,6 +925,9 @@ void KGreeter::cryptographicCardRemoved(TDECryptographicCardDevice* cdevice) {
// Restore information message display settings
verify->setInfoMessageDisplay(showInfoMessages);
+
+ verify->cardLoginInProgress = false;
+ verify->cardLoginDevice = NULL;
}
KStdGreeter::KStdGreeter()