diff options
author | Bernhard Fröhlich <bernhard@cacert.org> | 2011-07-14 23:05:52 +0200 |
---|---|---|
committer | Bernhard Fröhlich <bernhard@cacert.org> | 2011-07-14 23:05:52 +0200 |
commit | ab33bb3986f2b178c9baab61c5f52dfb7243ac6b (patch) | |
tree | 66f22908f9b23c2387fb87a646677103e64d0645 | |
parent | ffbe879decc16bc8cc15ace5698b622d01342513 (diff) | |
download | cacert-devel-ab33bb3986f2b178c9baab61c5f52dfb7243ac6b.tar.gz cacert-devel-ab33bb3986f2b178c9baab61c5f52dfb7243ac6b.tar.xz cacert-devel-ab33bb3986f2b178c9baab61c5f52dfb7243ac6b.zip |
Fixed handling of expired column, see table Notary in https://wiki.cacert.org/Software/Database/StructureDefinedbug-942
Cosmetic changes (alias tp changed to more intuitive cp)
-rw-r--r-- | includes/lib/account.php | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/includes/lib/account.php b/includes/lib/account.php index f9ab3d8..f7a24fa 100644 --- a/includes/lib/account.php +++ b/includes/lib/account.php @@ -23,11 +23,11 @@ function fix_assurer_flag($userID) // Should the number of points be SUM(points) or SUM(awarded)? $query = mysql_query('UPDATE `users` AS `u` SET `assurer` = 1 WHERE '. '`u`.`id` = \''.(int)intval($userID).'\' AND '. - 'EXISTS(SELECT 1 FROM `cats_passed` AS `tp`, `cats_variant` AS `cv` '. - 'WHERE `tp`.`variant_id` = `cv`.`id` AND `cv`.`type_id` = 1 AND '. - '`tp`.`user_id` = `u`.`id`) AND '. + 'EXISTS(SELECT 1 FROM `cats_passed` AS `cp`, `cats_variant` AS `cv` '. + 'WHERE `cp`.`variant_id` = `cv`.`id` AND `cv`.`type_id` = 1 AND '. + '`cp`.`user_id` = `u`.`id`) AND '. '(SELECT SUM(`points`) FROM `notary` AS `n` WHERE `n`.`to` = `u`.`id` '. - 'AND `expire` < now()) >= 100'); + 'AND (`n`.`expire` > now() OR `n`.`expire` IS NULL)) >= 100'); // Challenge has been passed and non-expired points >= 100 if (!$query) { @@ -37,11 +37,11 @@ function fix_assurer_flag($userID) // Reset flag if requirements are not met $query = mysql_query('UPDATE `users` AS `u` SET `assurer` = 0 WHERE '. '`u`.`id` = \''.(int)intval($userID).'\' AND '. - '(NOT EXISTS(SELECT 1 FROM `cats_passed` AS `tp`, `cats_variant` AS '. - '`cv` WHERE `tp`.`variant_id` = `cv`.`id` AND `cv`.`type_id` = 1 '. - 'AND `tp`.`user_id` = `u`.`id`) OR '. + '(NOT EXISTS(SELECT 1 FROM `cats_passed` AS `cp`, `cats_variant` AS '. + '`cv` WHERE `cp`.`variant_id` = `cv`.`id` AND `cv`.`type_id` = 1 '. + 'AND `cp`.`user_id` = `u`.`id`) OR '. '(SELECT SUM(`points`) FROM `notary` AS `n` WHERE `n`.`to` = `u`.`id` '. - 'AND `n`.`expire` < now()) < 100)'); + 'AND (`n`.`expire` > now() OR `n`.`expire` IS NULL)) < 100)'); if (!$query) { return false; |