Do not store access token, prepare DB for Inoreader multi acc.

This commit is contained in:
Martin Rotter 2017-10-02 09:33:58 +02:00
parent a84fc85191
commit 4dab74c13c
11 changed files with 33 additions and 38 deletions

@ -1 +1 @@
Subproject commit d44aacc99fdc997648c924f0d5444566164f142e
Subproject commit e9833a2e45d8d3241f662d3a03ed19d3446386ce

View File

@ -46,12 +46,15 @@ CREATE TABLE IF NOT EXISTS OwnCloudAccounts (
CREATE TABLE IF NOT EXISTS InoreaderAccounts (
id INTEGER,
username TEXT NOT NULL,
access_token TEXT,
app_id TEXT,
app_key TEXT,
redirect_url TEXT,
refresh_token TEXT,
msg_limit INTEGER NOT NULL DEFAULT -1 CHECK (msg_limit >= -1),
FOREIGN KEY (id) REFERENCES Accounts (id)
);
-- !
DROP TABLE IF EXISTS Categories;
-- !
CREATE TABLE IF NOT EXISTS Categories (

View File

@ -40,7 +40,9 @@ CREATE TABLE IF NOT EXISTS OwnCloudAccounts (
CREATE TABLE IF NOT EXISTS InoreaderAccounts (
id INTEGER,
username TEXT NOT NULL,
access_token TEXT,
app_id TEXT,
app_key TEXT,
redirect_url TEXT,
refresh_token TEXT,
msg_limit INTEGER NOT NULL DEFAULT -1 CHECK (msg_limit >= -1),

View File

@ -1,7 +1,9 @@
CREATE TABLE IF NOT EXISTS InoreaderAccounts (
id INTEGER,
username TEXT NOT NULL,
access_token TEXT,
app_id TEXT,
app_key TEXT,
redirect_url TEXT,
refresh_token TEXT,
msg_limit INTEGER NOT NULL DEFAULT -1 CHECK (msg_limit >= -1),

View File

@ -1,7 +1,9 @@
CREATE TABLE IF NOT EXISTS InoreaderAccounts (
id INTEGER,
username TEXT NOT NULL,
access_token TEXT,
app_id TEXT,
app_key TEXT,
redirect_url TEXT,
refresh_token TEXT,
msg_limit INTEGER NOT NULL DEFAULT -1 CHECK (msg_limit >= -1),

View File

@ -1522,14 +1522,12 @@ Assignment DatabaseQueries::getInoreaderFeeds(QSqlDatabase db, int account_id, b
return feeds;
}
bool DatabaseQueries::storeNewInoreaderTokens(QSqlDatabase db, const QString& access_token,
const QString& refresh_token, int account_id) {
bool DatabaseQueries::storeNewInoreaderTokens(QSqlDatabase db, const QString& refresh_token, int account_id) {
QSqlQuery query(db);
query.prepare("UPDATE InoreaderAccounts "
"SET access_token = :access_token, refresh_token = :refresh_token "
"SET refresh_token = :refresh_token "
"WHERE id = :id;");
query.bindValue(QSL(":access_token"), access_token);
query.bindValue(QSL(":refresh_token"), refresh_token);
query.bindValue(QSL(":id"), account_id);
@ -1554,9 +1552,8 @@ QList<ServiceRoot*> DatabaseQueries::getInoreaderAccounts(QSqlDatabase db, bool*
root->setId(query.value(0).toInt());
root->setAccountId(query.value(0).toInt());
root->network()->setUsername(query.value(1).toString());
root->network()->oauth()->setAccessToken(query.value(2).toString());
root->network()->oauth()->setRefreshToken(query.value(3).toString());
root->network()->setBatchSize(query.value(4).toInt());
root->network()->oauth()->setRefreshToken(query.value(5).toString());
root->network()->setBatchSize(query.value(6).toInt());
root->updateTitle();
roots.append(root);
}
@ -1576,15 +1573,14 @@ QList<ServiceRoot*> DatabaseQueries::getInoreaderAccounts(QSqlDatabase db, bool*
return roots;
}
bool DatabaseQueries::overwriteInoreaderAccount(QSqlDatabase db, const QString& username, const QString& access_token,
bool DatabaseQueries::overwriteInoreaderAccount(QSqlDatabase db, const QString& username,
const QString& refresh_token, int batch_size, int account_id) {
QSqlQuery query(db);
query.prepare("UPDATE InoreaderAccounts "
"SET username = :username, access_token = :access_token, refresh_token = :refresh_token , msg_limit = :msg_limit "
"SET username = :username, refresh_token = :refresh_token , msg_limit = :msg_limit "
"WHERE id = :id;");
query.bindValue(QSL(":username"), username);
query.bindValue(QSL(":access_token"), access_token);
query.bindValue(QSL(":refresh_token"), refresh_token);
query.bindValue(QSL(":id"), account_id);
query.bindValue(QSL(":msg_limit"), batch_size <= 0 ? INOREADER_DEFAULT_BATCH_SIZE : batch_size);
@ -1599,14 +1595,13 @@ bool DatabaseQueries::overwriteInoreaderAccount(QSqlDatabase db, const QString&
}
bool DatabaseQueries::createInoreaderAccount(QSqlDatabase db, int id_to_assign, const QString& username,
const QString& access_token, const QString& refresh_token, int batch_size) {
const QString& refresh_token, int batch_size) {
QSqlQuery q(db);
q.prepare("INSERT INTO InoreaderAccounts (id, username, access_token, refresh_token, msg_limit) "
"VALUES (:id, :username, :access_token, :refresh_token, :msg_limit);");
q.prepare("INSERT INTO InoreaderAccounts (id, username, refresh_token, msg_limit) "
"VALUES (:id, :username, :refresh_token, :msg_limit);");
q.bindValue(QSL(":id"), id_to_assign);
q.bindValue(QSL(":username"), username);
q.bindValue(QSL(":access_token"), access_token);
q.bindValue(QSL(":refresh_token"), refresh_token);
q.bindValue(QSL(":msg_limit"), batch_size <= 0 ? INOREADER_DEFAULT_BATCH_SIZE : batch_size);

View File

@ -81,12 +81,12 @@ class DatabaseQueries {
// Inoreader account.
#if defined(USE_WEBENGINE)
static Assignment getInoreaderFeeds(QSqlDatabase db, int account_id, bool* ok = nullptr);
static bool storeNewInoreaderTokens(QSqlDatabase db, const QString& access_token, const QString& refresh_token, int account_id);
static bool storeNewInoreaderTokens(QSqlDatabase db, const QString& refresh_token, int account_id);
static QList<ServiceRoot*> getInoreaderAccounts(QSqlDatabase db, bool* ok = nullptr);
static bool overwriteInoreaderAccount(QSqlDatabase db, const QString& username, const QString& access_token,
static bool overwriteInoreaderAccount(QSqlDatabase db, const QString& username,
const QString& refresh_token, int batch_size, int account_id);
static bool createInoreaderAccount(QSqlDatabase db, int id_to_assign, const QString& username,
const QString& access_token, const QString& refresh_token, int batch_size);
const QString& refresh_token, int batch_size);
#endif
// ownCloud account.

View File

@ -203,11 +203,3 @@ void OAuth2Service::retrieveAuthCode() {
});
login_page.login(auth_url, m_redirectUri);
}
QString OAuth2Service::accessToken() const {
return m_accessToken;
}
void OAuth2Service::setAccessToken(const QString& access_token) {
m_accessToken = access_token;
}

View File

@ -59,9 +59,6 @@ class OAuth2Service : public QObject {
void setOAuthTokenGrantType(QString grant_type);
QString grant_type();
QString accessToken() const;
void setAccessToken(const QString& access_token);
QString refreshToken() const;
void setRefreshToken(const QString& refresh_token);

View File

@ -66,8 +66,9 @@ void InoreaderServiceRoot::saveAccountDataToDatabase() {
QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings);
if (accountId() != NO_PARENT_CATEGORY) {
if (DatabaseQueries::overwriteInoreaderAccount(database, m_network->userName(), m_network->oauth()->accessToken(),
m_network->oauth()->refreshToken(), m_network->batchSize(),
if (DatabaseQueries::overwriteInoreaderAccount(database, m_network->userName(),
m_network->oauth()->refreshToken(),
m_network->batchSize(),
accountId())) {
updateTitle();
itemChanged(QList<RootItem*>() << this);
@ -79,8 +80,9 @@ void InoreaderServiceRoot::saveAccountDataToDatabase() {
if (saved) {
if (DatabaseQueries::createInoreaderAccount(database, id_to_assign,
m_network->userName(), m_network->oauth()->accessToken(),
m_network->oauth()->refreshToken(), m_network->batchSize())) {
m_network->userName(),
m_network->oauth()->refreshToken(),
m_network->batchSize())) {
setId(id_to_assign);
setAccountId(id_to_assign);
updateTitle();

View File

@ -75,7 +75,7 @@ void InoreaderNetworkFactory::initializeOauth() {
if (m_service != nullptr && !access_token.isEmpty() && !refresh_token.isEmpty()) {
QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings);
DatabaseQueries::storeNewInoreaderTokens(database, access_token, refresh_token, m_service->accountId());
DatabaseQueries::storeNewInoreaderTokens(database, refresh_token, m_service->accountId());
}
});
}