Don't try to find groupnoticestream if impossible

This commit is contained in:
Evan Prodromou 2012-03-21 16:18:38 -04:00
parent 710eb8e86e
commit 38343f3877

View File

@ -46,15 +46,47 @@ if (!defined('STATUSNET')) {
*/ */
class GroupNoticeStream extends ScopingNoticeStream class GroupNoticeStream extends ScopingNoticeStream
{ {
var $group;
function __construct($group, $profile = -1) function __construct($group, $profile = -1)
{ {
if (is_int($profile) && $profile == -1) { if (is_int($profile) && $profile == -1) {
$profile = Profile::current(); $profile = Profile::current();
} }
$this->group = $group;
parent::__construct(new CachingNoticeStream(new RawGroupNoticeStream($group), parent::__construct(new CachingNoticeStream(new RawGroupNoticeStream($group),
'user_group:notice_ids:' . $group->id), 'user_group:notice_ids:' . $group->id),
$profile); $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;
}
} }
/** /**