From 7f358d289ebdb0eba15502ce4795e809732001ac Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Tue, 21 Jul 2015 22:32:31 +0200 Subject: [PATCH] Fix calculation of ban expiration; fix #1283 --- servatrice/src/servatrice_database_interface.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/servatrice/src/servatrice_database_interface.cpp b/servatrice/src/servatrice_database_interface.cpp index 620957b4..2fd165b9 100644 --- a/servatrice/src/servatrice_database_interface.cpp +++ b/servatrice/src/servatrice_database_interface.cpp @@ -301,7 +301,7 @@ bool Servatrice_DatabaseInterface::checkUserIsBanned(const QString &ipAddress, c bool Servatrice_DatabaseInterface::checkUserIsNameBanned(const QString &userName, QString &banReason, int &banSecondsRemaining) { - QSqlQuery *nameBanQuery = prepareQuery("select time_to_sec(timediff(now(), date_add(b.time_from, interval b.minutes minute))), b.minutes <=> 0, b.visible_reason from {prefix}_bans b where b.time_from = (select max(c.time_from) from {prefix}_bans c where c.user_name = :name2) and b.user_name = :name1"); + QSqlQuery *nameBanQuery = prepareQuery("select timestampdiff(second, now(), date_add(b.time_from, interval b.minutes minute)), b.minutes <=> 0, b.visible_reason from {prefix}_bans b where b.time_from = (select max(c.time_from) from {prefix}_bans c where c.user_name = :name2) and b.user_name = :name1"); nameBanQuery->bindValue(":name1", userName); nameBanQuery->bindValue(":name2", userName); if (!execSqlQuery(nameBanQuery)) { @@ -310,7 +310,7 @@ bool Servatrice_DatabaseInterface::checkUserIsNameBanned(const QString &userName } if (nameBanQuery->next()) { - const int secondsLeft = -nameBanQuery->value(0).toInt(); + const int secondsLeft = nameBanQuery->value(0).toInt(); const bool permanentBan = nameBanQuery->value(1).toInt(); if ((secondsLeft > 0) || permanentBan) { banReason = nameBanQuery->value(2).toString(); @@ -326,7 +326,7 @@ bool Servatrice_DatabaseInterface::checkUserIsIpBanned(const QString &ipAddress, { QSqlQuery *ipBanQuery = prepareQuery( "select" - " time_to_sec(timediff(now(), date_add(b.time_from, interval b.minutes minute)))," + " timestampdiff(second, now(), date_add(b.time_from, interval b.minutes minute))," " b.minutes <=> 0," " b.visible_reason" " from {prefix}_bans b" @@ -344,7 +344,7 @@ bool Servatrice_DatabaseInterface::checkUserIsIpBanned(const QString &ipAddress, } if (ipBanQuery->next()) { - const int secondsLeft = -ipBanQuery->value(0).toInt(); + const int secondsLeft = ipBanQuery->value(0).toInt(); const bool permanentBan = ipBanQuery->value(1).toInt(); if ((secondsLeft > 0) || permanentBan) { banReason = ipBanQuery->value(2).toString();