summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/mail.php38
1 files changed, 20 insertions, 18 deletions
diff --git a/lib/mail.php b/lib/mail.php
index 2f4f502d4..3503be1d1 100644
--- a/lib/mail.php
+++ b/lib/mail.php
@@ -160,28 +160,30 @@ function mail_new_incoming_address() {
function mail_broadcast_notice_sms($notice) {
- $user = new User();
-
- $user->smsnotify = 1;
- $user->whereAdd('EXISTS (select subscriber from subscriptions where ' .
- ' subscriber = user.id and subscribed = ' . $notice->profile_id . ')');
- $user->whereAdd('sms is not null');
-
- $cnt = $user->find();
-
- common_log(LOG_INFO, "Sending notice " . $notice->id . " to $cnt subscribers", __FILE__);
+ # Now, get users subscribed to this profile
+ # XXX: use a join here rather than looping through results
- if ($cnt) {
- while ($user->fetch()) {
- $success = mail_send_sms_notice($notice, $user);
- if (!$success) {
- common_log(LOG_ERR, 'Could not send SMS message to user', __FILE__);
- return false;
+ $sub = new Subscription();
+ $sub->subscribed = $notice->profile_id;
+
+ if ($sub->find()) {
+ while ($sub->fetch()) {
+ $user = User::staticGet($sub->subscriber);
+ if ($user && $user->smsemail && $user->smsnotify) {
+ common_log(LOG_INFO,
+ 'Sending notice ' . $notice->id . ' to ' . $user->smsemail,
+ __FILE__);
+ $success = mail_send_sms_notice($notice, $user);
+ if (!$success) {
+ # XXX: Not sure, but I think that's the right thing to do
+ common_log(LOG_WARNING,
+ 'Sending notice ' . $notice->id . ' to ' . $user->smsemail . ' FAILED, cancelling.',
+ __FILE__);
+ return false;
+ }
}
}
}
-
- return true;
}
function mail_send_sms_notice($notice, $user) {