Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/browser/BrowserService.h')
-rw-r--r--src/browser/BrowserService.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/browser/BrowserService.h b/src/browser/BrowserService.h
new file mode 100644
index 000000000..5a96e1ecd
--- /dev/null
+++ b/src/browser/BrowserService.h
@@ -0,0 +1,82 @@
+/*
+* Copyright (C) 2013 Francois Ferrand
+* Copyright (C) 2017 Sami Vänttinen <sami.vanttinen@protonmail.com>
+* Copyright (C) 2017 KeePassXC Team <team@keepassxc.org>
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 2 or (at your option)
+* version 3 of the License.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef BROWSERSERVICE_H
+#define BROWSERSERVICE_H
+
+#include <QtCore>
+#include <QObject>
+#include "gui/DatabaseTabWidget.h"
+#include "core/Entry.h"
+
+enum { max_length = 16*1024 };
+
+class BrowserService : public QObject
+{
+ Q_OBJECT
+
+public:
+ explicit BrowserService(DatabaseTabWidget* parent);
+
+ bool isDatabaseOpened() const;
+ bool openDatabase(bool triggerUnlock);
+ QString getDatabaseRootUuid();
+ QString getDatabaseRecycleBinUuid();
+ Entry* getConfigEntry(bool create = false);
+ QString getKey(const QString& id);
+ void addEntry(const QString& id, const QString& login, const QString& password, const QString& url, const QString& submitUrl, const QString& realm);
+ QList<Entry*> searchEntries(Database* db, const QString& hostname);
+ QList<Entry*> searchEntries(const QString& text);
+ void removeSharedEncryptionKeys();
+ void removeStoredPermissions();
+
+public slots:
+ QJsonArray findMatchingEntries(const QString& id, const QString& url, const QString& submitUrl, const QString& realm);
+ QString storeKey(const QString& key);
+ void updateEntry(const QString& id, const QString& uuid, const QString& login, const QString& password, const QString& url);
+ void databaseLocked(DatabaseWidget* dbWidget);
+ void databaseUnlocked(DatabaseWidget* dbWidget);
+ void activateDatabaseChanged(DatabaseWidget* dbWidget);
+ void lockDatabase();
+
+signals:
+ void databaseLocked();
+ void databaseUnlocked();
+ void databaseChanged();
+
+private:
+ enum Access { Denied, Unknown, Allowed};
+
+private:
+ QList<Entry*> sortEntries(QList<Entry*>& pwEntries, const QString& host, const QString& submitUrl);
+ bool confirmEntries(QList<Entry*>& pwEntriesToConfirm, const QString& url, const QString& host, const QString& submitHost, const QString& realm);
+ QJsonObject prepareEntry(const Entry* entry);
+ Access checkAccess(const Entry* entry, const QString& host, const QString& submitHost, const QString& realm);
+ Group* findCreateAddEntryGroup();
+ int sortPriority(const Entry* entry, const QString &host, const QString& submitUrl, const QString& baseSubmitUrl) const;
+ bool matchUrlScheme(const QString& url);
+ bool removeFirstDomain(QString& hostname);
+ Database* getDatabase();
+
+private:
+ DatabaseTabWidget* const m_dbTabWidget;
+ bool m_dialogActive;
+};
+
+#endif // BROWSERSERVICE_H