1 /* 2 SPDX-FileCopyrightText: 2015-2018 Krzysztof Nowicki <krissn@op.pl> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #pragma once 8 9 #include <QObject> 10 #include <QPointer> 11 #include <QString> 12 #include <QUrl> 13 14 #include "ewsserverversion.h" 15 16 class EwsAbstractAuth; 17 18 class EwsClient : public QObject 19 { 20 Q_OBJECT 21 public: 22 explicit EwsClient(QObject *parent = nullptr); 23 ~EwsClient() override; 24 setUrl(const QString & url)25 void setUrl(const QString &url) 26 { 27 mUrl.setUrl(url); 28 } 29 30 void setAuth(EwsAbstractAuth *auth); 31 EwsAbstractAuth *auth() const; 32 33 enum RequestedConfiguration { 34 MailTips = 0, 35 UnifiedMessagingConfiguration, 36 ProtectionRules, 37 }; 38 39 QUrl url() const; 40 isConfigured()41 bool isConfigured() const 42 { 43 return !mUrl.isEmpty(); 44 } 45 46 void setServerVersion(const EwsServerVersion &version); serverVersion()47 const EwsServerVersion &serverVersion() const 48 { 49 return mServerVersion; 50 } 51 setUserAgent(const QString & userAgent)52 void setUserAgent(const QString &userAgent) 53 { 54 mUserAgent = userAgent; 55 } 56 userAgent()57 const QString &userAgent() const 58 { 59 return mUserAgent; 60 } 61 setEnableNTLMv2(bool enable)62 void setEnableNTLMv2(bool enable) 63 { 64 mEnableNTLMv2 = enable; 65 } 66 isNTLMv2Enabled()67 bool isNTLMv2Enabled() const 68 { 69 return mEnableNTLMv2; 70 } 71 72 static QHash<QString, QString> folderHash; 73 Q_SIGNALS: 74 void oAuthTokensChanged(const QString &accessToken, const QString &refreshToken); 75 void oAuthBrowserDisplayRequest(); 76 77 private: 78 QUrl mUrl; 79 80 QPointer<EwsAbstractAuth> mAuth; 81 82 QString mUserAgent; 83 bool mEnableNTLMv2; 84 85 EwsServerVersion mServerVersion; 86 87 friend class EwsRequest; 88 }; 89 90