Make blocks work for non-subscription deliveries

This commit is contained in:
Evan Prodromou 2012-03-23 12:55:39 -04:00
parent 3b09465fc4
commit 3e46a9b164
1 changed files with 17 additions and 19 deletions

View File

@ -1008,18 +1008,16 @@ class Notice extends Managed_DataObject
$users = $ptag->getUserSubscribers();
foreach ($users as $id) {
if (!array_key_exists($id, $ni)) {
$user = User::staticGet('id', $id);
if (!$user->hasBlocked($profile)) {
$ni[$id] = NOTICE_INBOX_SOURCE_PROFILE_TAG;
}
}
}
}
foreach ($recipients as $recipient) {
if (!array_key_exists($recipient, $ni)) {
$ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY;
}
}
// Exclude any deleted, non-local, or blocking recipients.
$profile = $this->getProfile();
@ -1031,6 +1029,7 @@ class Notice extends Managed_DataObject
$originalProfile = $original->getProfile();
}
}
foreach ($ni as $id => $source) {
$user = User::staticGet('id', $id);
if (empty($user) || $user->hasBlocked($profile) ||
@ -1038,7 +1037,6 @@ class Notice extends Managed_DataObject
unset($ni[$id]);
}
}
}
// Give plugins a chance to filter out...
Event::handle('EndNoticeWhoGets', array($this, &$ni));