From 8776329c6712bf8866bbc1a2b78fc47bfccb1795 Mon Sep 17 00:00:00 2001 From: Thorvald Natvig Date: Fri, 12 Mar 2010 13:11:46 +0100 Subject: [PATCH] Create SU account if it doesn't exist yet when setting password --- src/murmur/ServerDB.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/murmur/ServerDB.cpp b/src/murmur/ServerDB.cpp index 8ae4f293e..150b3f408 100644 --- a/src/murmur/ServerDB.cpp +++ b/src/murmur/ServerDB.cpp @@ -984,10 +984,22 @@ void ServerDB::setSUPW(int srvnum, const QString &pw) { TransactionHolder th; QCryptographicHash hash(QCryptographicHash::Sha1); - hash.addData(pw.toUtf8()); QSqlQuery &query = *th.qsqQuery; + + SQLPREP("SELECT `user_id` FROM `%1users` WHERE `server_id` = ? AND `user_id` = ?"); + query.addBindValue(srvnum); + query.addBindValue(0); + SQLEXEC(); + if (! query.next()) { + SQLPREP("INSERT INTO `%1users` (`server_id`, `user_id`, `name`) VALUES (?, ?, ?)"); + query.addBindValue(srvnum); + query.addBindValue(0); + query.addBindValue(QLatin1String("SuperUser")); + SQLEXEC(); + } + SQLPREP("UPDATE `%1users` SET `pw`=? WHERE `server_id` = ? AND `user_id`=?"); query.addBindValue(QString::fromLatin1(hash.result().toHex())); query.addBindValue(srvnum);