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