/usr/include/owncloudsync/creds/abstractcredentials.h is in libowncloudsync-dev 2.4.1+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | /*
* Copyright (C) by Krzesimir Nowak <krzesimir@endocode.com>
*
* 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_ABSTRACT_CREDENTIALS_H
#define MIRALL_CREDS_ABSTRACT_CREDENTIALS_H
#include <QObject>
#include <csync.h>
#include "owncloudlib.h"
#include "accountfwd.h"
class QNetworkAccessManager;
class QNetworkReply;
namespace OCC {
class OWNCLOUDSYNC_EXPORT AbstractCredentials : public QObject
{
Q_OBJECT
public:
AbstractCredentials();
// No need for virtual destructor - QObject already has one.
/** The bound account for the credentials instance.
*
* Credentials are always used in conjunction with an account.
* Calling Account::setCredentials() will call this function.
* Credentials only live as long as the underlying account object.
*/
virtual void setAccount(Account *account);
virtual QString authType() const = 0;
virtual QString user() const = 0;
virtual QNetworkAccessManager *createQNAM() const = 0;
/** Whether there are credentials that can be used for a connection attempt. */
virtual bool ready() const = 0;
/** Whether fetchFromKeychain() was called before. */
bool wasFetched() const { return _wasFetched; }
/** Trigger (async) fetching of credential information
*
* Should set _wasFetched = true, and later emit fetched() when done.
*/
virtual void fetchFromKeychain() = 0;
/** Ask credentials from the user (typically async)
*
* Should emit asked() when done.
*/
virtual void askFromUser() = 0;
virtual bool stillValid(QNetworkReply *reply) = 0;
virtual void persist() = 0;
/** Invalidates token used to authorize requests, it will no longer be used.
*
* For http auth, this would be the session cookie.
*
* Note that sensitive data (like the password used to acquire the
* session cookie) may be retained. See forgetSensitiveData().
*
* ready() must return false afterwards.
*/
virtual void invalidateToken() = 0;
/** Clears out all sensitive data; used for fully signing out users.
*
* This should always imply invalidateToken() but may go beyond it.
*
* For http auth, this would clear the session cookie and password.
*/
virtual void forgetSensitiveData() = 0;
static QString keychainKey(const QString &url, const QString &user, const QString &accountId);
Q_SIGNALS:
/** Emitted when fetchFromKeychain() is done.
*
* Note that ready() can be true or false, depending on whether there was useful
* data in the keychain.
*/
void fetched();
/** Emitted when askFromUser() is done.
*
* Note that ready() can be true or false, depending on whether the user provided
* data or not.
*/
void asked();
protected:
Account *_account;
bool _wasFetched;
};
} // namespace OCC
#endif
|