class ProfileNoticeStream extends ScopingNoticeStream
{
var $streamProfile;
+ var $userProfile;
function __construct($profile, $userProfile = -1)
{
$userProfile = Profile::current();
}
$this->streamProfile = $profile;
+ $this->userProfile = $userProfile;
parent::__construct(new CachingNoticeStream(new RawProfileNoticeStream($profile),
'profile:notice_ids:' . $profile->id),
$userProfile);
}
- function getNoticeIds($offset, $limit, $since_id, $max_id)
+ function getNoticeIds($offset, $limit, $since_id=null, $max_id=null)
{
if ($this->impossibleStream()) {
return array();
}
}
- function getNotices($offset, $limit, $sinceId = null, $maxId = null)
+ function getNotices($offset, $limit, $since_id=null, $max_id=null)
{
if ($this->impossibleStream()) {
- return array();
+ return new ArrayWrapper(array());
} else {
- return parent::getNotices($offset, $limit, $sinceId, $maxId);
+ return parent::getNotices($offset, $limit, $since_id, $max_id);
}
}
function impossibleStream()
{
- $user = User::staticGet('id', $this->streamProfile->id);
+ $user = User::getKV('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)) {
+ (empty($this->userProfile) || !$this->userProfile->isSubscribed($this->streamProfile))) {
return true;
}
if (common_config('notice', 'hidespam')) {
if ($this->streamProfile->hasRole(Profile_role::SILENCED) &&
- (empty($this->profile) || !$this->profile->hasRole(Profile_role::MODERATOR))) {
+ (empty($this->userProfile) || (($this->userProfile->id !== $this->streamProfile->id) && !$this->userProfile->hasRight(Right::REVIEWSPAM)))) {
return true;
}
}
function __construct($profile)
{
+ parent::__construct();
$this->profile = $profile;
}