Fix for ticket #3010: blocks are now applied against the original poster of repeats.
Previously, if someone you subscribe to repeats a notice by someone you've blocked, you got the message and had to just roll your eyes. Now blocks are checked against both the current notice's posting profile, and the poster of the original if it's a repeat.
This commit is contained in:
parent
0a3c05feb0
commit
e35d46b415
@ -819,9 +819,18 @@ class Notice extends Memcached_DataObject
|
||||
|
||||
// Exclude any deleted, non-local, or blocking recipients.
|
||||
$profile = $this->getProfile();
|
||||
$originalProfile = null;
|
||||
if ($this->repeat_of) {
|
||||
// Check blocks against the original notice's poster as well.
|
||||
$original = Notice::staticGet('id', $this->repeat_of);
|
||||
if ($original) {
|
||||
$originalProfile = $original->getProfile();
|
||||
}
|
||||
}
|
||||
foreach ($ni as $id => $source) {
|
||||
$user = User::staticGet('id', $id);
|
||||
if (empty($user) || $user->hasBlocked($profile)) {
|
||||
if (empty($user) || $user->hasBlocked($profile) ||
|
||||
($originalProfile && $user->hasBlocked($originalProfile))) {
|
||||
unset($ni[$id]);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user