adding --change-userpass=<username> option to the core
[quassel.git] / src / core / sqlitestorage.cpp
index 19710ed..fcc52ad 100644 (file)
@@ -120,7 +120,7 @@ UserId SqliteStorage::addUser(const QString &user, const QString &password) {
   return uid;
 }
 
-void SqliteStorage::updateUser(UserId user, const QString &password) {
+bool SqliteStorage::updateUser(UserId user, const QString &password) {
   QSqlDatabase db = logDb();
   db.transaction();
 
@@ -130,8 +130,10 @@ void SqliteStorage::updateUser(UserId user, const QString &password) {
   query.bindValue(":password", cryptedPassword(password));
   lockForWrite();
   safeExec(query);
+  bool success = query.numRowsAffected() != 0;
   db.commit();
   unlock();
+  return success;
 }
 
 void SqliteStorage::renameUser(UserId user, const QString &newName) {
@@ -167,6 +169,23 @@ UserId SqliteStorage::validateUser(const QString &user, const QString &password)
   }
 }
 
+UserId SqliteStorage::getUserId(const QString &username) {
+  QSqlQuery query(logDb());
+  query.prepare(queryString("select_userid"));
+  query.bindValue(":username", username);
+
+  lockForRead();
+  safeExec(query);
+
+  if(query.first()) {
+    unlock();
+    return query.value(0).toInt();
+  } else {
+    unlock();
+    return 0;
+  }
+}
+
 UserId SqliteStorage::internalUser() {
   QSqlQuery query(logDb());
   query.prepare(queryString("select_internaluser"));