From e477ec0a3945d752aae0d4bc545e895d15bd7aea Mon Sep 17 00:00:00 2001 From: Yuliya Bozhko Date: Wed, 15 Jan 2014 16:24:37 +1300 Subject: [PATCH] MDL-43621 badges: Fix has_awards() result when deleted users are the only recipients of a badge --- lib/badgeslib.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/badgeslib.php b/lib/badgeslib.php index 78425a02e90..0d1f9281d97 100644 --- a/lib/badgeslib.php +++ b/lib/badgeslib.php @@ -331,10 +331,11 @@ class badge { */ public function has_awards() { global $DB; - if ($DB->record_exists('badge_issued', array('badgeid' => $this->id))) { - return true; - } - return false; + $awarded = $DB->record_exists_sql('SELECT b.uniquehash + FROM {badge_issued} b INNER JOIN {user} u ON b.userid = u.id + WHERE b.badgeid = :badgeid AND u.deleted = 0', array('badgeid' => $this->id)); + + return $awarded; } /**