Do not store access token, prepare DB for Inoreader multi acc.
This commit is contained in:
parent
a84fc85191
commit
4dab74c13c
@ -1 +1 @@
|
||||
Subproject commit d44aacc99fdc997648c924f0d5444566164f142e
|
||||
Subproject commit e9833a2e45d8d3241f662d3a03ed19d3446386ce
|
@ -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 (
|
||||
|
@ -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),
|
||||
|
||||
|
@ -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),
|
||||
|
||||
|
@ -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),
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user