File indexing completed on 2024-12-01 13:42:22
0001 #ifndef POLICYKITLISTENER_H 0002 #define POLICYKITLISTENER_H 0003 0004 /* This file is part of the KDE project 0005 SPDX-FileCopyrightText: 2009 Jaroslav Reznik <jreznik@redhat.com> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #include <QHash> 0011 #include <QPointer> 0012 0013 #include <PolkitQt1/Agent/Listener> 0014 0015 class AuthDialog; 0016 0017 using namespace PolkitQt1::Agent; 0018 0019 class PolicyKitListener : public Listener 0020 { 0021 Q_OBJECT 0022 Q_CLASSINFO("D-Bus Interface", "org.kde.Polkit1AuthAgent") 0023 public: 0024 explicit PolicyKitListener(QObject *parent = nullptr); 0025 ~PolicyKitListener() override; 0026 0027 public Q_SLOTS: 0028 void initiateAuthentication(const QString &actionId, 0029 const QString &message, 0030 const QString &iconName, 0031 const PolkitQt1::Details &details, 0032 const QString &cookie, 0033 const PolkitQt1::Identity::List &identities, 0034 PolkitQt1::Agent::AsyncResult *result) override; 0035 bool initiateAuthenticationFinish() override; 0036 void cancelAuthentication() override; 0037 0038 void tryAgain(); 0039 void finishObtainPrivilege(); 0040 0041 void request(const QString &request, bool echo); 0042 void completed(bool gainedAuthorization); 0043 void showError(const QString &text); 0044 void showInfo(const QString &text); 0045 0046 void setWIdForAction(const QString &action, qulonglong wID); 0047 0048 private: 0049 QPointer<AuthDialog> m_dialog; 0050 QPointer<Session> m_session; 0051 bool m_inProgress; 0052 bool m_gainedAuthorization; 0053 bool m_wasCancelled; 0054 int m_numTries; 0055 PolkitQt1::Identity::List m_identities; 0056 PolkitQt1::Agent::AsyncResult *m_result; 0057 QString m_cookie; 0058 PolkitQt1::Identity m_selectedUser; 0059 QHash<QString, qulonglong> m_actionsToWID; 0060 0061 private Q_SLOTS: 0062 void dialogAccepted(); 0063 void dialogCanceled(); 0064 void userSelected(const PolkitQt1::Identity &identity); 0065 }; 0066 0067 #endif