12#include <KConfigWatcher>
14#include "kwalletd_debug.h"
18 QStringList passwords;
24 QList<Folder> folders;
27class SecretServiceClient;
48 bool isEnabled()
const;
50 int open(
const QString &wallet, qlonglong wId,
const QString &appId);
52 int openPath(
const QString &path, qlonglong wId,
const QString &appId);
54 int openAsync(
const QString &wallet, qlonglong wId,
const QString &appId,
bool handleSession);
56 int openPathAsync(
const QString &path, qlonglong wId,
const QString &appId,
bool handleSession);
62 int close(
const QString &wallet,
bool force);
63 int close(
int handle,
bool force,
const QString &appId);
66 Q_NOREPLY
void sync(
int handle,
const QString &appId);
69 int deleteWallet(
const QString &wallet);
72 bool isOpen(
const QString &wallet);
73 bool isOpen(
int handle);
76 QStringList users(
const QString &wallet)
const;
79 void changePassword(
const QString &wallet, qlonglong wId,
const QString &appId);
82 QStringList wallets()
const;
85 QStringList folderList(
int handle,
const QString &appId);
87 bool hasFolder(
int handle,
const QString &folder,
const QString &appId);
90 bool createFolder(
int handle,
const QString &folder,
const QString &appId);
93 bool removeFolder(
int handle,
const QString &folder,
const QString &appId);
96 QStringList entryList(
int handle,
const QString &folder,
const QString &appId);
101 QByteArray readEntry(
int handle,
const QString &folder,
const QString &key,
const QString &appId);
102 QByteArray readMap(
int handle,
const QString &folder,
const QString &key,
const QString &appId);
103 QString readPassword(
int handle,
const QString &folder,
const QString &key,
const QString &appId);
106 QVariantMap readEntryList(
int handle,
const QString &folder,
const QString &key,
const QString &appId);
108 QVariantMap entriesList(
int handle,
const QString &folder,
const QString &appId);
110 QVariantMap readMapList(
int handle,
const QString &folder,
const QString &key,
const QString &appId);
112 QVariantMap mapList(
int handle,
const QString &folder,
const QString &appId);
114 QVariantMap readPasswordList(
int handle,
const QString &folder,
const QString &key,
const QString &appId);
116 QVariantMap passwordList(
int handle,
const QString &folder,
const QString &appId);
119 int renameEntry(
int handle,
const QString &folder,
const QString &oldName,
const QString &newName,
const QString &appId);
122 int writeEntry(
int handle,
const QString &folder,
const QString &key,
const QByteArray &value,
int entryType,
const QString &appId);
123 int writeEntry(
int handle,
const QString &folder,
const QString &key,
const QByteArray &value,
const QString &appId);
124 int writeMap(
int handle,
const QString &folder,
const QString &key,
const QByteArray &value,
const QString &appId);
125 int writePassword(
int handle,
const QString &folder,
const QString &key,
const QString &value,
const QString &appId);
128 bool hasEntry(
int handle,
const QString &folder,
const QString &key,
const QString &appId);
130 int entryType(
int handle,
const QString &folder,
const QString &key,
const QString &appId);
132 int removeEntry(
int handle,
const QString &folder,
const QString &key,
const QString &appId);
135 bool disconnectApplication(
const QString &wallet,
const QString &application);
140 bool folderDoesNotExist(
const QString &wallet,
const QString &folder);
141 bool keyDoesNotExist(
const QString &wallet,
const QString &folder,
const QString &key);
144 void closeAllWallets();
146 QString networkWallet();
147 QString localWallet();
152 int pamOpen(
const QString &wallet,
const QByteArray &passwordHash,
int sessionTimeout);
155 int openInternal(
const QString &wallet, qlonglong wId,
const QString &appId);
159 bool migrateWallet(
const QString &sourceWallet,
const QString &destWallet);
164 QString walletForHandle(
int handle,
const QString &appId);
166 QString folderPath(
const QString &folder,
const QString &key)
const;
168 EntryType keyType(
const QString &wallet,
const QString &folder,
const QString &key);
170 QString readString(
const QString &key,
const QString &folder,
const QString &wallet,
bool *ok);
171 QByteArray readRawJson(
const QString &key,
const QString &folder,
const QString &wallet,
bool *ok);
172 QByteArray readBinary(
const QString &key,
const QString &folder,
const QString &wallet,
bool *ok);
173 void writeString(
const QString &key,
const QString &value,
const QString &folder,
const QString &wallet,
bool *ok);
174 void writeBinary(
const QString &key,
const QByteArray &value,
const QString &folder,
const QString &wallet,
bool *ok);
175 void writeRawJson(
const QString &key,
const QByteArray &value,
const QString &folder,
const QString &wallet,
bool *ok);
176 void removeItem(
const QString &key,
const QString &folder,
const QString &wallet,
bool *ok);
178 void timerEvent(QTimerEvent *)
override;
181 void walletAsyncOpened(
int id,
int handle);
182 void walletListDirty();
183 void walletCreated(
const QString &wallet);
184 void walletOpened(
const QString &wallet);
185 void walletDeleted(
const QString &wallet);
186 void walletClosed(
const QString &wallet);
188 void walletClosed(
int handle);
190 void walletClosedId(
int handle);
192 void allWalletsClosed();
193 void folderListUpdated(
const QString &wallet);
194 void folderUpdated(
const QString &wallet,
const QString &folder);
195 void entryUpdated(
const QString &wallet,
const QString &folder,
const QString &key);
196 void entryRenamed(
const QString &wallet,
const QString &folder,
const QString &oldName,
const QString &newName);
197 void entryDeleted(
const QString &wallet,
const QString &folder,
const QString &key);
198 void applicationDisconnected(
const QString &wallet,
const QString &application);
201 SecretServiceClient *m_backend;
203 QMultiHash<QString, QString> m_structure;
204 QHash<QPair<int, QString>, QString> m_openWallets;
205 QHash<QPair<int, QString>,
int> m_idleTimers;
207 bool m_enabled =
true;
208 bool m_launchManager =
false;
209 bool m_closeIdle =
false;
211 int m_idleTime = 10 * 60 * 1000;
212 KConfigWatcher::Ptr m_configWatcher;
214 static unsigned int s_lastTransaction;
QObject * parent() const const