Don't try to find groupnoticestream if impossible

This commit is contained in:
Evan Prodromou 2012-03-21 16:18:38 -04:00
parent f807bd1b30
commit 6215ff8e07
1 changed files with 32 additions and 0 deletions

View File

@ -46,15 +46,47 @@ if (!defined('STATUSNET')) {
*/
class GroupNoticeStream extends ScopingNoticeStream
{
var $group;
function __construct($group, $profile = -1)
{
if (is_int($profile) && $profile == -1) {
$profile = Profile::current();
}
$this->group = $group;
parent::__construct(new CachingNoticeStream(new RawGroupNoticeStream($group),
'user_group:notice_ids:' . $group->id),
$profile);
}
function getNoticeIds($offset, $limit, $since_id, $max_id)
{
if ($this->impossibleStream()) {
return array();
} else {
return parent::getNoticeIds($offset, $limit, $since_id, $max_id);
}
}
function getNotices($offset, $limit, $sinceId = null, $maxId = null)
{
if ($this->impossibleStream()) {
return array();
} else {
return parent::getNotices($offset, $limit, $sinceId, $maxId);
}
}
function impossibleStream()
{
if ($this->group->force_scope &&
(empty($this->profile) || !$this->profile->isMember($group))) {
return true;
}
return false;
}
}
/**