Don't try to find profilenoticestream if impossible

This commit is contained in:
Evan Prodromou 2012-03-21 16:18:27 -04:00
parent e21b0948ed
commit 710eb8e86e

View File

@ -62,28 +62,43 @@ class ProfileNoticeStream extends ScopingNoticeStream
function getNoticeIds($offset, $limit, $since_id, $max_id) function getNoticeIds($offset, $limit, $since_id, $max_id)
{ {
// Sanity check if ($this->impossibleStream()) {
if (common_config('notice', 'hidespam')) { return array();
if ($this->streamProfile->hasRole(Profile_role::SILENCED) && } else {
(empty($this->profile) || !$this->profile->hasRole(Profile_role::MODERATOR))) { return parent::getNoticeIds($offset, $limit, $since_id, $max_id);
throw new ClientException(_("This account silenced by moderators."), 403);
}
} }
return parent::getNoticeIds($offset, $limit, $since_id, $max_id);
} }
function getNotices($offset, $limit, $sinceId = null, $maxId = null) function getNotices($offset, $limit, $sinceId = null, $maxId = null)
{ {
// Sanity check if ($this->impossibleStream()) {
return array();
} else {
return parent::getNotices($offset, $limit, $sinceId, $maxId);
}
}
function impossibleStream()
{
$user = User::staticGet('id', $this->streamProfile->id);
// If it's a private stream, and no user or not a subscriber
if (!empty($user) && $user->private_stream &&
empty($this->profile) || !$this->profile->isSubscribed($this->streamProfile)) {
return true;
}
// If it's a spammy stream, and no user or not a moderator
if (common_config('notice', 'hidespam')) { if (common_config('notice', 'hidespam')) {
if ($this->streamProfile->hasRole(Profile_role::SILENCED) && if ($this->streamProfile->hasRole(Profile_role::SILENCED) &&
(empty($this->profile) || !$this->profile->hasRole(Profile_role::MODERATOR))) { (empty($this->profile) || !$this->profile->hasRole(Profile_role::MODERATOR))) {
throw new ClientException(_("This account silenced by moderators."), 403); return true;
} }
} }
return parent::getNotices($offset, $limit, $sinceId, $maxId); return false;
} }
} }