}
-UserId SqliteStorage::addUser(const QString &user, const QString &password)
+UserId SqliteStorage::addUser(const QString &user, const QString &password, const QString &authenticator)
{
QSqlDatabase db = logDb();
UserId uid;
query.bindValue(":username", user);
query.bindValue(":password", hashPassword(password));
query.bindValue(":hashversion", Storage::HashVersion::Latest);
+ query.bindValue(":authenticator", authenticator);
lockForWrite();
safeExec(query);
if (query.lastError().isValid() && query.lastError().number() == 19) { // user already exists - sadly 19 seems to be the general constraint violation error...
return userId;
}
+QString SqliteStorage::getUserAuthenticator(const UserId userid)
+{
+ QString authenticator = QString("");
+
+ {
+ QSqlQuery query(logDb());
+ query.prepare(queryString("select_authenticator"));
+ query.bindValue(":userid", userid.toInt());
+
+ lockForRead();
+ safeExec(query);
+
+ if (query.first()) {
+ authenticator = query.value(0).toString();
+ }
+ }
+ unlock();
+
+ return authenticator;
+}
UserId SqliteStorage::internalUser()
{
return markerLineHash;
}
-
bool SqliteStorage::logMessage(Message &msg)
{
QSqlDatabase db = logDb();
query.bindValue(":firstmsg", first.toInt());
}
else {
- query.prepare(queryString("select_messages"));
+ query.prepare(queryString("select_messagesRange"));
query.bindValue(":lastmsg", last.toInt());
query.bindValue(":firstmsg", first.toInt());
}
user.username = value(1).toString();
user.password = value(2).toString();
user.hashversion = value(3).toInt();
+ user.authenticator = value(4).toString();
return true;
}
buffer.buffername = value(4).toString();
buffer.buffercname = value(5).toString();
buffer.buffertype = value(6).toInt();
- buffer.lastseenmsgid = value(7).toInt();
- buffer.markerlinemsgid = value(8).toInt();
- buffer.key = value(9).toString();
- buffer.joined = value(10).toInt() == 1 ? true : false;
+ buffer.lastmsgid = value(7).toInt();
+ buffer.lastseenmsgid = value(8).toInt();
+ buffer.markerlinemsgid = value(9).toInt();
+ buffer.key = value(10).toString();
+ buffer.joined = value(11).toInt() == 1 ? true : false;
return true;
}