diff --git a/servatrice/src/servatrice_database_interface.cpp b/servatrice/src/servatrice_database_interface.cpp index e920cde9..a280e7e9 100644 --- a/servatrice/src/servatrice_database_interface.cpp +++ b/servatrice/src/servatrice_database_interface.cpp @@ -270,23 +270,7 @@ ServerInfo_User Servatrice_DatabaseInterface::evalUserQueryResult(const QSqlQuer if (withId) result.set_id(query->value(0).toInt()); result.set_name(query->value(1).toString().toStdString()); - - const QString country = query->value(5).toString(); - if (!country.isEmpty()) - result.set_country(country.toStdString()); - - if (complete) { - const QByteArray avatarBmp = query->value(6).toByteArray(); - if (avatarBmp.size()) - result.set_avatar_bmp(avatarBmp.data(), avatarBmp.size()); - } - - const QString genderStr = query->value(4).toString(); - if (genderStr == "m") - result.set_gender(ServerInfo_User::Male); - else if (genderStr == "f") - result.set_gender(ServerInfo_User::Female); - + const int is_admin = query->value(2).toInt(); int userLevel = ServerInfo_User::IsUser | ServerInfo_User::IsRegistered; if (is_admin == 1) @@ -294,17 +278,32 @@ ServerInfo_User Servatrice_DatabaseInterface::evalUserQueryResult(const QSqlQuer else if (is_admin == 2) userLevel |= ServerInfo_User::IsModerator; result.set_user_level(userLevel); - - const QString realName = query->value(3).toString(); - if (!realName.isEmpty()) - result.set_real_name(realName.toStdString()); - const QDateTime regDate = query->value(7).toDateTime(); - if(!regDate.toString(Qt::ISODate).isEmpty()) { - qint64 accountAgeInSeconds = regDate.secsTo(QDateTime::currentDateTime()); - result.set_accountage_secs(accountAgeInSeconds); + const QString country = query->value(3).toString(); + if (!country.isEmpty()) + result.set_country(country.toStdString()); + + if (complete) { + const QString genderStr = query->value(4).toString(); + if (genderStr == "m") + result.set_gender(ServerInfo_User::Male); + else if (genderStr == "f") + result.set_gender(ServerInfo_User::Female); + + const QString realName = query->value(5).toString(); + if (!realName.isEmpty()) + result.set_real_name(realName.toStdString()); + + const QByteArray avatarBmp = query->value(6).toByteArray(); + if (avatarBmp.size()) + result.set_avatar_bmp(avatarBmp.data(), avatarBmp.size()); + + const QDateTime regDate = query->value(7).toDateTime(); + if(!regDate.toString(Qt::ISODate).isEmpty()) { + qint64 accountAgeInSeconds = regDate.secsTo(QDateTime::currentDateTime()); + result.set_accountage_secs(accountAgeInSeconds); + } } - return result; } @@ -318,7 +317,7 @@ ServerInfo_User Servatrice_DatabaseInterface::getUserData(const QString &name, b if (!checkSql()) return result; - QSqlQuery *query = prepareQuery("select id, name, admin, realname, gender, country, avatar_bmp, registrationDate from {prefix}_users where name = :name and active = 1"); + QSqlQuery *query = prepareQuery("select id, name, admin, country, gender, realname, avatar_bmp, registrationDate from {prefix}_users where name = :name and active = 1"); query->bindValue(":name", name); if (!execSqlQuery(query)) return result; @@ -405,7 +404,7 @@ QMap Servatrice_DatabaseInterface::getBuddyList(const if (server->getAuthenticationMethod() == Servatrice::AuthenticationSql) { checkSql(); - QSqlQuery *query = prepareQuery("select a.id, a.name, a.admin, a.realname, a.gender, a.country from {prefix}_users a left join {prefix}_buddylist b on a.id = b.id_user2 left join {prefix}_users c on b.id_user1 = c.id where c.name = :name"); + QSqlQuery *query = prepareQuery("select a.id, a.name, a.admin, a.country from {prefix}_users a left join {prefix}_buddylist b on a.id = b.id_user2 left join {prefix}_users c on b.id_user1 = c.id where c.name = :name"); query->bindValue(":name", name); if (!execSqlQuery(query)) return result; @@ -425,7 +424,7 @@ QMap Servatrice_DatabaseInterface::getIgnoreList(const if (server->getAuthenticationMethod() == Servatrice::AuthenticationSql) { checkSql(); - QSqlQuery *query = prepareQuery("select a.id, a.name, a.admin, a.realname, a.gender, a.country from {prefix}_users a left join {prefix}_ignorelist b on a.id = b.id_user2 left join {prefix}_users c on b.id_user1 = c.id where c.name = :name"); + QSqlQuery *query = prepareQuery("select a.id, a.name, a.admin, a.country from {prefix}_users a left join {prefix}_ignorelist b on a.id = b.id_user2 left join {prefix}_users c on b.id_user1 = c.id where c.name = :name"); query->bindValue(":name", name); if (!execSqlQuery(query)) return result;