KIO::AuthInfo KPasswdServer::checkAuthInfo(KIO::AuthInfo info, long windowId, unsigned long usertime) { kdDebug(130) << "KPasswdServer::checkAuthInfo: User= "******", WindowId = " << windowId << endl; if( usertime != 0 ) kapp->updateUserTimestamp( usertime ); QString key = createCacheKey(info); Request *request = m_authPending.first(); QString path2 = info.url.directory(false, false); for(; request; request = m_authPending.next()) { if (request->key != key) continue; if (info.verifyPath) { QString path1 = request->info.url.directory(false, false); if (!path2.startsWith(path1)) continue; } request = new Request; request->client = callingDcopClient(); request->transaction = request->client->beginTransaction(); request->key = key; request->info = info; m_authWait.append(request); return info; } const AuthInfo *result = findAuthInfoItem(key, info); if (!result || result->isCanceled) { if (!result && (info.username.isEmpty() || info.password.isEmpty()) && !KWallet::Wallet::keyDoesNotExist(KWallet::Wallet::NetworkWallet(), KWallet::Wallet::PasswordFolder(), makeWalletKey(key, info.realmValue))) { QMap<QString, QString> knownLogins; if (openWallet(windowId)) { if (readFromWallet(m_wallet, key, info.realmValue, info.username, info.password, info.readOnly, knownLogins)) { info.setModified(true); return info; } } } info.setModified(false); return info; } updateAuthExpire(key, result, windowId, false); return copyAuthInfo(result); }
bool Observer::openPassDlg(KIO::AuthInfo &info) { kdDebug(KDEBUG_OBSERVER) << "Observer::openPassDlg: User= "******", Message= " << info.prompt << endl; int result = KIO::PasswordDialog::getNameAndPassword(info.username, info.password, &info.keepPassword, info.prompt, info.readOnly, info.caption, info.comment, info.commentLabel); if(result == QDialog::Accepted) { info.setModified(true); return true; } return false; }
KIO::AuthInfo KPasswdServer::copyAuthInfo(const AuthInfo *i) { KIO::AuthInfo result; result.url = i->url; result.username = i->username; result.password = i->password; result.realmValue = i->realmValue; result.digestInfo = i->digestInfo; result.setModified(true); return result; }