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

Service.h « http « src - github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6452d605ac973b05f84412e83d459797aeb4b0cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
 ***************************************************************************
 * @file Service.h
 *
 * @brief
 *
 * Copyright (C) 2013
 *
 * @author	Francois Ferrand
 * @date	4/2013
 ***************************************************************************
 */

#ifndef SERVICE_H
#define SERVICE_H

#include <QObject>
#include "gui/DatabaseTabWidget.h"
#include "Server.h"

class Service : public KeepassHttpProtocol::Server
{
    Q_OBJECT

public:
    explicit Service(DatabaseTabWidget* parent = 0);

    virtual bool isDatabaseOpened() const;
    virtual bool openDatabase();
    virtual QString getDatabaseRootUuid();
    virtual QString getDatabaseRecycleBinUuid();
    virtual QString getKey(const QString& id);
    virtual QString storeKey(const QString& key);
    virtual QList<KeepassHttpProtocol::Entry> findMatchingEntries(const QString& id, const QString& url, const QString&  submitUrl, const QString&  realm);
    virtual int countMatchingEntries(const QString& id, const QString& url, const QString&  submitUrl, const QString&  realm);
    virtual QList<KeepassHttpProtocol::Entry> searchAllEntries(const QString& id);
    virtual void addEntry(const QString& id, const QString& login, const QString& password, const QString& url, const QString& submitUrl, const QString& realm);
    virtual void updateEntry(const QString& id, const QString& uuid, const QString& login, const QString& password, const QString& url);
    virtual QString generatePassword();

public Q_SLOTS:
    void removeSharedEncryptionKeys();
    void removeStoredPermissions();

private:
    enum Access { Denied, Unknown, Allowed};
    Entry* getConfigEntry(bool create = false);
    bool matchUrlScheme(const QString& url);
    Access checkAccess(const Entry* entry, const QString&  host, const QString&  submitHost, const QString&  realm);
    bool removeFirstDomain(QString& hostname);
    Group *findCreateAddEntryGroup();
    class SortEntries;
    int sortPriority(const Entry *entry, const QString &host, const QString &submitUrl, const QString &baseSubmitUrl) const;
    KeepassHttpProtocol::Entry prepareEntry(const Entry* entry);
    QList<Entry*> searchEntries(Database* db, const QString& hostname);
    QList<Entry*> searchEntries(const QString& text);

    DatabaseTabWidget * const m_dbTabWidget;
};

#endif // SERVICE_H