summaryrefslogtreecommitdiffstats
path: root/kresources/carddav/preferences.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kresources/carddav/preferences.cpp')
-rw-r--r--kresources/carddav/preferences.cpp239
1 files changed, 0 insertions, 239 deletions
diff --git a/kresources/carddav/preferences.cpp b/kresources/carddav/preferences.cpp
deleted file mode 100644
index 5e46b611b..000000000
--- a/kresources/carddav/preferences.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-/*=========================================================================
-| KABCDAV
-|--------------------------------------------------------------------------
-| (c) 2010 Timothy Pearson
-|
-| This project is released under the GNU General Public License.
-| Please see the file COPYING for more details.
-|--------------------------------------------------------------------------
-| CardDAV resource preferences class.
- ========================================================================*/
-
-/*=========================================================================
-| INCLUDES
- ========================================================================*/
-
-#include "preferences.h"
-
-#include <kwallet.h>
-#include <tqstring.h>
-#include <tqurl.h>
-#include <kdebug.h>
-
-/*=========================================================================
-| NAMESPACES
- ========================================================================*/
-
-using namespace KABC;
-using namespace KWallet;
-
-/*=========================================================================
-| CONSTANTS
- ========================================================================*/
-
-const TQString CardDavPrefs::NO_PASSWORD = "";
-const TQString CardDavPrefs::WALLET_FOLDER = "CardDAV resource";
-const TQString CardDavPrefs::WALLET_PWD_SUFFIX = ":carddav_password";
-
-/*=========================================================================
-| METHODS
- ========================================================================*/
-
-bool CardDavPrefs::setWalletFolder(const TQString& folder) {
- bool ret = true;
-
- if (!mNoWallet && NULL != mWallet) {
- if (!mWallet->hasFolder(folder)) {
- if (!mWallet->createFolder(folder)) {
- ret = false;
- kdWarning() << "can't create the wallet folder for CardDAV passwords";
- }
- }
- if (!mWallet->setFolder(folder)) {
- ret = false;
- kdWarning() << "can't set the wallet folder for CardDAV passwords";
- }
- } else {
- // the wallet is inaccessible or not configured
- ret = false;
- }
-
- return ret;
-}
-
-Wallet* CardDavPrefs::getWallet() {
- Wallet* ret = NULL;
-
- if (!mNoWallet) {
- // the wallet is not marked as inaccessible
-
- if (NULL == mWallet) {
- kdDebug() << "creating wallet for " + mPrefix << '\n';
-
- mWallet = Wallet::openWallet(Wallet::NetworkWallet(), 0);
- if (NULL == mWallet) {
- mNoWallet = true; // can't open the wallet, mark it inaccessible
- kdWarning() << "can't create a wallet for CardDAV passwords";
- } else {
- if (setWalletFolder(WALLET_FOLDER)) {
- // reserved
- } else {
- // can't set the wallet folder, remove the wallet and mark it inaccessible
- kdWarning() << "can't set the walet folder for CardDAV passwords";
- removeWallet(true);
- }
- }
- }
-
- ret = mWallet;
- }
-
- return ret;
-}
-
-void CardDavPrefs::removeWallet(bool noWallet) {
- delete mWallet;
- mWallet = NULL;
- mNoWallet = noWallet;
-}
-
-void CardDavPrefs::addPrefix(const TQString& prefix) {
- TDEConfigSkeletonItem::List itemList = items();
- TDEConfigSkeletonItem::List::Iterator it;
-
- for ( it = itemList.begin(); it != itemList.end(); ++it ) {
- (*it)->setGroup( prefix + ':' + (*it)->group() );
- }
-}
-
-bool CardDavPrefs::writePasswordToWallet(const TQString& password) {
-
- Wallet* w = getWallet();
-
- bool ret = false;
- if (NULL != w) {
- int rc = w->writePassword(mPrefix + WALLET_PWD_SUFFIX, password);
- if (0 != rc) {
- kdWarning() << "CardDAV: can't write password to the wallet";
- } else {
- ret = true;
- }
- }
-
- return ret;
-}
-
-bool CardDavPrefs::readPasswordFromWallet(TQString& password) {
- Wallet* w = getWallet();
-
- bool ret = false;
- if (NULL != w) {
- TQString p;
- int rc = w->readPassword(mPrefix + WALLET_PWD_SUFFIX, p);
- if (0 == rc) {
- //CardDavPrefsSkel::setPassword(p);
- password = p;
- ret = true;
- } else {
- kdWarning() << "CardDAV: can't read password from the wallet";
- password = NO_PASSWORD;
- }
- }
-
- return ret;
-}
-
-bool CardDavPrefs::removePasswordFromWallet() {
-
- Wallet* w = getWallet();
-
- bool ret = false;
- if (NULL != w) {
- int rc = w->removeEntry(mPrefix + WALLET_PWD_SUFFIX);
- if (0 == rc) {
- ret = true;
- } else {
- kdWarning() << "CardDAV: can't remove password from the wallet";
- }
- }
-
- return ret;
-}
-
-void CardDavPrefs::setPassword(const TQString& p) {
-
- mPassword = p;
-
- if (rememberPassword()) {
- writePasswordToWallet(p);
- }
-}
-
-TQString CardDavPrefs::password() {
- if (NO_PASSWORD == mPassword) {
- readPasswordFromWallet(mPassword);
- }
- return mPassword;
-}
-
-TQString CardDavPrefs::getusername() {
- return username();
-}
-
-void CardDavPrefs::setRememberPassword(bool v) {
- kdDebug() << "remember: " << v << '\n';
-
- CardDavPrefsSkel::setRememberPassword(v);
-
- if (!v) {
- // we should not remember password. If there is one already stored, it must be removed.
- kdDebug() << "removing password from wallet" << '\n';
- removePasswordFromWallet();
- }
-}
-
-void CardDavPrefs::writeConfig() {
- CardDavPrefsSkel::writeConfig();
-}
-
-void CardDavPrefs::readConfig() {
-
- CardDavPrefsSkel::readConfig();
-
- // the password is not in config file, try to restore it from the wallet.
- /*if (rememberPassword()) {
- readPasswordFromWallet();
- }*/
-}
-
-bool CardDavPrefs::getUseURI() {
- return useURI();
-}
-
-TQString CardDavPrefs::getFullUrl() {
-
- TQUrl t(url());
- TQString safeURL;
- int firstAt;
-
- t.setUser(username());
- t.setPassword(password());
-
- safeURL = t.toString();
-
- firstAt = safeURL.find("@") + 1;
- while (safeURL.find("@", firstAt) != -1) {
- safeURL.replace(safeURL.find("@", firstAt), 1, "%40");
- }
-
- // Unencode the username, as Zimbra stupidly rejects the %40
- safeURL.replace("%40", "@");
-
- // Encode any spaces, as libcarddav stupidly fails otherwise
- safeURL.replace(" ", "%20");
-
- return safeURL;
-}
-
-// EOF ========================================================================
-