File indexing completed on 2024-04-28 05:50:08

0001 /*
0002  * SPDX-License-Identifier: GPL-3.0-or-later
0003  * SPDX-FileCopyrightText: 2020 Johan Ouwerkerk <jm.ouwerkerk@gmail.com>
0004  */
0005 #ifndef MODEL_PASSWORD_H
0006 #define MODEL_PASSWORD_H
0007 
0008 #include "../account/keys.h"
0009 
0010 namespace model
0011 {
0012     class PasswordRequest: public QObject
0013     {
0014         Q_OBJECT
0015         Q_PROPERTY(bool firstRun READ firstRun NOTIFY passwordRequestChanged)
0016         Q_PROPERTY(bool previouslyDefined READ previouslyDefined NOTIFY passwordRequestChanged)
0017         Q_PROPERTY(bool keyAvailable READ keyAvailable NOTIFY passwordAccepted)
0018         Q_PROPERTY(bool passwordProvided READ passwordProvided NOTIFY passwordStateChanged)
0019     public:
0020         explicit PasswordRequest(accounts::AccountSecret *secret, QObject *parent = nullptr);
0021         bool firstRun(void) const;
0022         bool previouslyDefined(void) const;
0023         bool keyAvailable(void) const;
0024         bool passwordProvided(void) const;
0025     public:
0026         Q_INVOKABLE bool providePassword(QString password);
0027         Q_INVOKABLE bool provideBothPasswords(QString password, QString other);
0028     Q_SIGNALS:
0029         void passwordRequestChanged(void);
0030         void passwordExists(void);
0031         void newPasswordNeeded(void);
0032         void passwordAccepted(void);
0033         void passwordRejected(void);
0034         void passwordStateChanged(void);
0035     private Q_SLOTS:
0036         void setKeyAvailable(void);
0037         void setPasswordAvailable(void);
0038         void setPasswordRejected(void);
0039         void setPreviouslyDefined(void);
0040         void setNewPasswordNeeded(void);
0041     private:
0042         accounts::AccountSecret * m_secret;
0043     private:
0044         bool m_firstRun;
0045         bool m_previous;
0046         bool m_haveKey;
0047         bool m_havePassword;
0048     };
0049 }
0050 
0051 #endif