From 8dbbd9b6e3a64d7804dd28e73d42c95d5384b7e5 Mon Sep 17 00:00:00 2001 From: Michael Joseph Date: Fri, 1 Aug 2003 14:41:27 +0000 Subject: [PATCH] (#2826) check if users exists before attempt to alert them if a subscribed id doesn't exist, remove the subscription for that user. --- lib/subscriptions/SubscriptionEngine.inc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/subscriptions/SubscriptionEngine.inc b/lib/subscriptions/SubscriptionEngine.inc index f1b97cd..678dfe5 100644 --- a/lib/subscriptions/SubscriptionEngine.inc +++ b/lib/subscriptions/SubscriptionEngine.inc @@ -118,7 +118,20 @@ class SubscriptionEngine { if ($sql->query("SELECT user_id FROM " . Subscription::getTableName($iSubscriptionType) . " " . "WHERE " . Subscription::getIdFieldName($iSubscriptionType) . " = $iExternalID")) { while ($sql->next_record()) { - $aUsers[] = & User::get($sql->f("user_id")); + $iUserID = $sql->f("user_id"); + $oUser = & User::get($iUserID ); + if ($oUser) { + $aUsers[] = $oUser; + } else { + $default->log->error("SubscriptionEngine::fireSubscription subscriber id=$iUserID doesn't exist"); + // remove this users subscription + if ($sql->query("DELETE FROM " . Subscription::getTableName($iSubscriptionType) . " " . + "WHERE user_id = $iUserID")) { + $default->log->info("SubscriptionEngine::fireSubscription successfully removed subscription for removed user id=$iUserID"); + } else { + $default->log->error("SubscriptionEngine::fireSubscription error removing subscription for user id=$iUserID"); + } + } } } else { $_SESSION["errorMessage"] = $lang_err_database; -- libgit2 0.21.4