/* * Copyright (C) by Klaas Freitag * Copyright (C) by Krzesimir Nowak * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. */ #ifndef MIRALL_CREDS_HTTP_CREDENTIALS_H #define MIRALL_CREDS_HTTP_CREDENTIALS_H #include #include "creds/abstractcredentials.h" class QNetworkReply; class QAuthenticator; namespace QKeychain { class Job; } namespace Mirall { class OWNCLOUDSYNC_EXPORT HttpCredentials : public AbstractCredentials { Q_OBJECT public: HttpCredentials(); HttpCredentials(const QString& user, const QString& password); void syncContextPreInit(CSYNC* ctx) Q_DECL_OVERRIDE; void syncContextPreStart(CSYNC* ctx) Q_DECL_OVERRIDE; bool changed(AbstractCredentials* credentials) const Q_DECL_OVERRIDE; QString authType() const Q_DECL_OVERRIDE; QNetworkAccessManager* getQNAM() const Q_DECL_OVERRIDE; bool ready() const Q_DECL_OVERRIDE; void fetch(Account *account) Q_DECL_OVERRIDE; bool stillValid(QNetworkReply *reply) Q_DECL_OVERRIDE; void persist(Account *account) Q_DECL_OVERRIDE; QString user() const Q_DECL_OVERRIDE; QString password() const; virtual QString queryPassword(bool *ok) = 0; void invalidateToken(Account *account) Q_DECL_OVERRIDE; QString fetchUser(Account *account); virtual bool sslIsTrusted() { return false; } private Q_SLOTS: void slotAuthentication(QNetworkReply*, QAuthenticator*); void slotReadJobDone(QKeychain::Job*); void slotWriteJobDone(QKeychain::Job*); protected: QString _user; QString _password; private: bool _ready; bool _fetchJobInProgress; //True if the keychain job is in progress or the input dialog visible bool _readPwdFromDeprecatedPlace; }; class OWNCLOUDSYNC_EXPORT HttpCredentialsGui : public HttpCredentials { public: HttpCredentialsGui() : HttpCredentials() {} HttpCredentialsGui(const QString& user, const QString& password) : HttpCredentials(user, password) {} QString queryPassword(bool *ok) Q_DECL_OVERRIDE; }; } // ns Mirall #endif