File indexing completed on 2024-05-12 05:35:30
0001 /* 0002 This file is part of KDE. 0003 0004 SPDX-FileCopyrightText: 2009 Eckhart Wörner <ewoerner@kde.org> 0005 SPDX-FileCopyrightText: 2010 Frederik Gladhorn <gladhorn@kde.org> 0006 0007 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0008 0009 */ 0010 0011 #pragma once 0012 0013 #include <attica/platformdependent.h> 0014 0015 #include <QHash> 0016 0017 #include <KSharedConfig> 0018 0019 namespace Attica 0020 { 0021 class KdePlatformDependent : public QObject, public Attica::PlatformDependent 0022 { 0023 Q_OBJECT 0024 Q_INTERFACES(Attica::PlatformDependent) 0025 Q_PLUGIN_METADATA(IID "org.kde.attica-kde") 0026 0027 public: 0028 KdePlatformDependent(); 0029 ~KdePlatformDependent() override; 0030 QList<QUrl> getDefaultProviderFiles() const override; 0031 void addDefaultProviderFile(const QUrl &url) override; 0032 void removeDefaultProviderFile(const QUrl &url) override; 0033 void enableProvider(const QUrl &baseUrl, bool enabled) const override; 0034 bool isEnabled(const QUrl &baseUrl) const override; 0035 0036 QNetworkReply *post(const QNetworkRequest &request, const QByteArray &data) override; 0037 QNetworkReply *post(const QNetworkRequest &request, QIODevice *data) override; 0038 QNetworkReply *get(const QNetworkRequest &request) override; 0039 bool saveCredentials(const QUrl &baseUrl, const QString &user, const QString &password) override; 0040 bool hasCredentials(const QUrl &baseUrl) const override; 0041 bool loadCredentials(const QUrl &baseUrl, QString &user, QString &password) override; 0042 bool askForCredentials(const QUrl &baseUrl, QString &user, QString &password) override; 0043 QNetworkAccessManager *nam() override; 0044 0045 private: 0046 QNetworkRequest addOAuthToRequest(const QNetworkRequest &request); 0047 QNetworkRequest removeAuthFromRequest(const QNetworkRequest &request); 0048 QString getAccessToken(const QUrl &baseUrl) const; 0049 0050 KSharedConfigPtr m_config; 0051 QNetworkAccessManager *m_accessManager{nullptr}; 0052 QHash<QString, QPair<QString, QString>> m_passwords; 0053 }; 0054 0055 }