File indexing completed on 2024-04-28 03:52:39
0001 /* 0002 SPDX-FileCopyrightText: 2008 Nicola Gigante <nicola.gigante@gmail.com> 0003 SPDX-FileCopyrightText: 2009 Radek Novacek <rnovacek@redhat.com> 0004 SPDX-FileCopyrightText: 2009-2010 Dario Freddi <drf@kde.org> 0005 SPDX-FileCopyrightText: 2023 Kai Uwe Broulik <kde@broulik.de> 0006 0007 SPDX-License-Identifier: LGPL-2.1-or-later 0008 */ 0009 0010 #ifndef POLKIT1BACKEND_H 0011 #define POLKIT1BACKEND_H 0012 0013 #include "AuthBackend.h" 0014 0015 #include <QEventLoop> 0016 #include <QHash> 0017 #include <QStringList> 0018 0019 #include <PolkitQt1/Authority> 0020 0021 #include <memory> 0022 0023 class QByteArray; 0024 0025 namespace KAuth 0026 { 0027 class Polkit1Backend : public AuthBackend 0028 { 0029 Q_OBJECT 0030 Q_PLUGIN_METADATA(IID "org.kde.Polkit1Backend") 0031 Q_INTERFACES(KAuth::AuthBackend) 0032 0033 public: 0034 Polkit1Backend(); 0035 ~Polkit1Backend() override; 0036 void setupAction(const QString &) override; 0037 void preAuthAction(const QString &action, QWindow *parent) override; 0038 Action::AuthStatus authorizeAction(const QString &) override; 0039 Action::AuthStatus actionStatus(const QString &) override; 0040 QByteArray callerID() const override; 0041 virtual bool isCallerAuthorized(const QString &action, const QByteArray &callerID, const QVariantMap &details) override; 0042 QVariantMap backendDetails(const DetailsMap &details) override; 0043 0044 private Q_SLOTS: 0045 void checkForResultChanged(); 0046 0047 private: 0048 void sendWindowHandle(const QString &action, const QString &handle); 0049 void sendActivationToken(const QString &action, QWindow *window); 0050 0051 QHash<QString, Action::AuthStatus> m_cachedResults; 0052 }; 0053 0054 } // namespace Auth 0055 0056 #endif