We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit f807bd1b authored by Evan Prodromou's avatar Evan Prodromou

Don't try to find profilenoticestream if impossible

parent 07f70b43
...@@ -62,28 +62,43 @@ class ProfileNoticeStream extends ScopingNoticeStream ...@@ -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;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment