Removing whitespace and creating an early-return in inScope
This commit is contained in:
parent
325e784ccd
commit
060dbe1b56
@ -128,7 +128,7 @@ class Notice extends Managed_DataObject
|
|||||||
|
|
||||||
return $def;
|
return $def;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Notice types */
|
/* Notice types */
|
||||||
const LOCAL_PUBLIC = 1;
|
const LOCAL_PUBLIC = 1;
|
||||||
const REMOTE = 0;
|
const REMOTE = 0;
|
||||||
@ -142,7 +142,7 @@ class Notice extends Managed_DataObject
|
|||||||
const FOLLOWER_SCOPE = 8;
|
const FOLLOWER_SCOPE = 8;
|
||||||
|
|
||||||
protected $_profile = array();
|
protected $_profile = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Will always return a profile, if anything fails it will
|
* Will always return a profile, if anything fails it will
|
||||||
* (through _setProfile) throw a NoProfileException.
|
* (through _setProfile) throw a NoProfileException.
|
||||||
@ -157,7 +157,7 @@ class Notice extends Managed_DataObject
|
|||||||
}
|
}
|
||||||
return $this->_profile[$this->profile_id];
|
return $this->_profile[$this->profile_id];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function _setProfile(Profile $profile=null)
|
public function _setProfile(Profile $profile=null)
|
||||||
{
|
{
|
||||||
if (!$profile instanceof Profile) {
|
if (!$profile instanceof Profile) {
|
||||||
@ -268,7 +268,7 @@ class Notice extends Managed_DataObject
|
|||||||
}
|
}
|
||||||
return $title;
|
return $title;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getContent()
|
public function getContent()
|
||||||
{
|
{
|
||||||
return $this->content;
|
return $this->content;
|
||||||
@ -674,7 +674,7 @@ class Notice extends Managed_DataObject
|
|||||||
$notice->insert(); // throws exception on failure
|
$notice->insert(); // throws exception on failure
|
||||||
// If it's not part of a conversation, it's
|
// If it's not part of a conversation, it's
|
||||||
// the beginning of a new conversation.
|
// the beginning of a new conversation.
|
||||||
if (empty($notice->conversation)) {
|
if (empty($notice->conversation)) {
|
||||||
$orig = clone($notice);
|
$orig = clone($notice);
|
||||||
// $act->context->conversation will be null if it was not provided
|
// $act->context->conversation will be null if it was not provided
|
||||||
$conv = Conversation::create($notice, $options['conversation']);
|
$conv = Conversation::create($notice, $options['conversation']);
|
||||||
@ -777,7 +777,7 @@ class Notice extends Managed_DataObject
|
|||||||
'distribute' => true);
|
'distribute' => true);
|
||||||
|
|
||||||
// options will have default values when nothing has been supplied
|
// options will have default values when nothing has been supplied
|
||||||
$options = array_merge($defaults, $options);
|
$options = array_merge($defaults, $options);
|
||||||
foreach (array_keys($defaults) as $key) {
|
foreach (array_keys($defaults) as $key) {
|
||||||
// Only convert the keynames we specify ourselves from 'defaults' array into variables
|
// Only convert the keynames we specify ourselves from 'defaults' array into variables
|
||||||
$$key = $options[$key];
|
$$key = $options[$key];
|
||||||
@ -957,7 +957,7 @@ class Notice extends Managed_DataObject
|
|||||||
// Prepare inbox delivery, may be queued to background.
|
// Prepare inbox delivery, may be queued to background.
|
||||||
$stored->distribute();
|
$stored->distribute();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $stored;
|
return $stored;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1067,13 +1067,9 @@ class Notice extends Managed_DataObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
$args = func_get_args();
|
$args = func_get_args();
|
||||||
|
|
||||||
$format = array_shift($args);
|
$format = array_shift($args);
|
||||||
|
|
||||||
$keyPart = vsprintf($format, $args);
|
$keyPart = vsprintf($format, $args);
|
||||||
|
|
||||||
$cacheKey = Cache::key($keyPart);
|
$cacheKey = Cache::key($keyPart);
|
||||||
|
|
||||||
$c->delete($cacheKey);
|
$c->delete($cacheKey);
|
||||||
|
|
||||||
// delete the "last" stream, too, if this notice is
|
// delete the "last" stream, too, if this notice is
|
||||||
@ -1187,24 +1183,20 @@ class Notice extends Managed_DataObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected $_attachments = array();
|
protected $_attachments = array();
|
||||||
|
|
||||||
function attachments() {
|
function attachments() {
|
||||||
if (isset($this->_attachments[$this->id])) {
|
if (isset($this->_attachments[$this->id])) {
|
||||||
return $this->_attachments[$this->id];
|
return $this->_attachments[$this->id];
|
||||||
}
|
}
|
||||||
|
|
||||||
$f2ps = File_to_post::listGet('post_id', array($this->id));
|
|
||||||
|
|
||||||
$ids = array();
|
|
||||||
|
|
||||||
foreach ($f2ps[$this->id] as $f2p) {
|
|
||||||
$ids[] = $f2p->file_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
$files = File::multiGet('id', $ids);
|
|
||||||
|
|
||||||
|
$f2ps = File_to_post::listGet('post_id', array($this->id));
|
||||||
|
$ids = array();
|
||||||
|
foreach ($f2ps[$this->id] as $f2p) {
|
||||||
|
$ids[] = $f2p->file_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
$files = File::multiGet('id', $ids);
|
||||||
$this->_attachments[$this->id] = $files->fetchAll();
|
$this->_attachments[$this->id] = $files->fetchAll();
|
||||||
|
|
||||||
return $this->_attachments[$this->id];
|
return $this->_attachments[$this->id];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1286,7 +1278,7 @@ class Notice extends Managed_DataObject
|
|||||||
$root->free();
|
$root->free();
|
||||||
return $root;
|
return $root;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_null($profile)) {
|
if (is_null($profile)) {
|
||||||
$keypart = sprintf('notice:conversation_root:%d:null', $this->id);
|
$keypart = sprintf('notice:conversation_root:%d:null', $this->id);
|
||||||
} else {
|
} else {
|
||||||
@ -1294,7 +1286,7 @@ class Notice extends Managed_DataObject
|
|||||||
$this->id,
|
$this->id,
|
||||||
$profile->id);
|
$profile->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
$root = self::cacheGet($keypart);
|
$root = self::cacheGet($keypart);
|
||||||
|
|
||||||
if ($root !== false && $root->inScope($profile)) {
|
if ($root !== false && $root->inScope($profile)) {
|
||||||
@ -1707,9 +1699,9 @@ class Notice extends Managed_DataObject
|
|||||||
function getReplyProfiles()
|
function getReplyProfiles()
|
||||||
{
|
{
|
||||||
$ids = $this->getReplies();
|
$ids = $this->getReplies();
|
||||||
|
|
||||||
$profiles = Profile::multiGet('id', $ids);
|
$profiles = Profile::multiGet('id', $ids);
|
||||||
|
|
||||||
return $profiles->fetchAll();
|
return $profiles->fetchAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1747,9 +1739,9 @@ class Notice extends Managed_DataObject
|
|||||||
*
|
*
|
||||||
* @return array of Group objects
|
* @return array of Group objects
|
||||||
*/
|
*/
|
||||||
|
|
||||||
protected $_groups = array();
|
protected $_groups = array();
|
||||||
|
|
||||||
function getGroups()
|
function getGroups()
|
||||||
{
|
{
|
||||||
// Don't save groups for repeats
|
// Don't save groups for repeats
|
||||||
@ -1757,27 +1749,24 @@ class Notice extends Managed_DataObject
|
|||||||
if (!empty($this->repeat_of)) {
|
if (!empty($this->repeat_of)) {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($this->_groups[$this->id])) {
|
if (isset($this->_groups[$this->id])) {
|
||||||
return $this->_groups[$this->id];
|
return $this->_groups[$this->id];
|
||||||
}
|
}
|
||||||
|
|
||||||
$gis = Group_inbox::listGet('notice_id', array($this->id));
|
$gis = Group_inbox::listGet('notice_id', array($this->id));
|
||||||
|
|
||||||
$ids = array();
|
$ids = array();
|
||||||
|
|
||||||
foreach ($gis[$this->id] as $gi)
|
foreach ($gis[$this->id] as $gi) {
|
||||||
{
|
|
||||||
$ids[] = $gi->group_id;
|
$ids[] = $gi->group_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$groups = User_group::multiGet('id', $ids);
|
$groups = User_group::multiGet('id', $ids);
|
||||||
|
|
||||||
$this->_groups[$this->id] = $groups->fetchAll();
|
$this->_groups[$this->id] = $groups->fetchAll();
|
||||||
|
|
||||||
return $this->_groups[$this->id];
|
return $this->_groups[$this->id];
|
||||||
}
|
}
|
||||||
|
|
||||||
function _setGroups($groups)
|
function _setGroups($groups)
|
||||||
{
|
{
|
||||||
$this->_groups[$this->id] = $groups;
|
$this->_groups[$this->id] = $groups;
|
||||||
@ -2159,7 +2148,7 @@ class Notice extends Managed_DataObject
|
|||||||
// Unfortunately this is likely to lose tags or URLs
|
// Unfortunately this is likely to lose tags or URLs
|
||||||
// at the end of long notices.
|
// at the end of long notices.
|
||||||
$content = mb_substr($content, 0, $maxlen - 4) . ' ...';
|
$content = mb_substr($content, 0, $maxlen - 4) . ' ...';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Scope is same as this one's
|
// Scope is same as this one's
|
||||||
@ -2687,89 +2676,78 @@ class Notice extends Managed_DataObject
|
|||||||
$scope = self::defaultScope();
|
$scope = self::defaultScope();
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there's no scope, anyone (even anon) is in scope.
|
if ($scope == 0) { // Not scoping, so it is public.
|
||||||
|
|
||||||
if ($scope == 0) { // Not private
|
|
||||||
|
|
||||||
return !$this->isHiddenSpam($profile);
|
|
||||||
|
|
||||||
} else { // Private, somehow
|
|
||||||
|
|
||||||
// If there's scope, anon cannot be in scope
|
|
||||||
|
|
||||||
if (empty($profile)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Author is always in scope
|
|
||||||
|
|
||||||
if ($this->profile_id == $profile->id) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only for users on this site
|
|
||||||
|
|
||||||
if (($scope & Notice::SITE_SCOPE) && !$profile->isLocal()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only for users mentioned in the notice
|
|
||||||
|
|
||||||
if ($scope & Notice::ADDRESSEE_SCOPE) {
|
|
||||||
|
|
||||||
$reply = Reply::pkeyGet(array('notice_id' => $this->id,
|
|
||||||
'profile_id' => $profile->id));
|
|
||||||
|
|
||||||
if (!$reply instanceof Reply) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only for members of the given group
|
|
||||||
|
|
||||||
if ($scope & Notice::GROUP_SCOPE) {
|
|
||||||
|
|
||||||
// XXX: just query for the single membership
|
|
||||||
|
|
||||||
$groups = $this->getGroups();
|
|
||||||
|
|
||||||
$foundOne = false;
|
|
||||||
|
|
||||||
foreach ($groups as $group) {
|
|
||||||
if ($profile->isMember($group)) {
|
|
||||||
$foundOne = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$foundOne) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only for followers of the author
|
|
||||||
|
|
||||||
$author = null;
|
|
||||||
|
|
||||||
if ($scope & Notice::FOLLOWER_SCOPE) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
$author = $this->getProfile();
|
|
||||||
} catch (Exception $e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Subscription::exists($profile, $author)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return !$this->isHiddenSpam($profile);
|
return !$this->isHiddenSpam($profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If there's scope, anon cannot be in scope
|
||||||
|
if (empty($profile)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Author is always in scope
|
||||||
|
if ($this->profile_id == $profile->id) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only for users on this site
|
||||||
|
if (($scope & Notice::SITE_SCOPE) && !$profile->isLocal()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only for users mentioned in the notice
|
||||||
|
if ($scope & Notice::ADDRESSEE_SCOPE) {
|
||||||
|
|
||||||
|
$reply = Reply::pkeyGet(array('notice_id' => $this->id,
|
||||||
|
'profile_id' => $profile->id));
|
||||||
|
|
||||||
|
if (!$reply instanceof Reply) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only for members of the given group
|
||||||
|
if ($scope & Notice::GROUP_SCOPE) {
|
||||||
|
|
||||||
|
// XXX: just query for the single membership
|
||||||
|
|
||||||
|
$groups = $this->getGroups();
|
||||||
|
|
||||||
|
$foundOne = false;
|
||||||
|
|
||||||
|
foreach ($groups as $group) {
|
||||||
|
if ($profile->isMember($group)) {
|
||||||
|
$foundOne = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$foundOne) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only for followers of the author
|
||||||
|
$author = null;
|
||||||
|
|
||||||
|
if ($scope & Notice::FOLLOWER_SCOPE) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
$author = $this->getProfile();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Subscription::exists($profile, $author)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return !$this->isHiddenSpam($profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
function isHiddenSpam($profile) {
|
function isHiddenSpam($profile) {
|
||||||
|
|
||||||
// Hide posts by silenced users from everyone but moderators.
|
// Hide posts by silenced users from everyone but moderators.
|
||||||
|
|
||||||
if (common_config('notice', 'hidespam')) {
|
if (common_config('notice', 'hidespam')) {
|
||||||
@ -2819,7 +2797,7 @@ class Notice extends Managed_DataObject
|
|||||||
$skip = array('_profile', '_groups', '_attachments', '_faves', '_replies', '_repeats');
|
$skip = array('_profile', '_groups', '_attachments', '_faves', '_replies', '_repeats');
|
||||||
return array_diff($vars, $skip);
|
return array_diff($vars, $skip);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function defaultScope()
|
static function defaultScope()
|
||||||
{
|
{
|
||||||
$scope = common_config('notice', 'defaultscope');
|
$scope = common_config('notice', 'defaultscope');
|
||||||
@ -2836,7 +2814,6 @@ class Notice extends Managed_DataObject
|
|||||||
static function fillProfiles($notices)
|
static function fillProfiles($notices)
|
||||||
{
|
{
|
||||||
$map = self::getProfiles($notices);
|
$map = self::getProfiles($notices);
|
||||||
|
|
||||||
foreach ($notices as $entry=>$notice) {
|
foreach ($notices as $entry=>$notice) {
|
||||||
try {
|
try {
|
||||||
if (array_key_exists($notice->profile_id, $map)) {
|
if (array_key_exists($notice->profile_id, $map)) {
|
||||||
@ -2847,42 +2824,35 @@ class Notice extends Managed_DataObject
|
|||||||
unset($notices[$entry]);
|
unset($notices[$entry]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return array_values($map);
|
return array_values($map);
|
||||||
}
|
}
|
||||||
|
|
||||||
static function getProfiles(&$notices)
|
static function getProfiles(&$notices)
|
||||||
{
|
{
|
||||||
$ids = array();
|
$ids = array();
|
||||||
foreach ($notices as $notice) {
|
foreach ($notices as $notice) {
|
||||||
$ids[] = $notice->profile_id;
|
$ids[] = $notice->profile_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$ids = array_unique($ids);
|
$ids = array_unique($ids);
|
||||||
|
return Profile::pivotGet('id', $ids);
|
||||||
return Profile::pivotGet('id', $ids);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static function fillGroups(&$notices)
|
static function fillGroups(&$notices)
|
||||||
{
|
{
|
||||||
$ids = self::_idsOf($notices);
|
$ids = self::_idsOf($notices);
|
||||||
|
|
||||||
$gis = Group_inbox::listGet('notice_id', $ids);
|
$gis = Group_inbox::listGet('notice_id', $ids);
|
||||||
|
|
||||||
$gids = array();
|
$gids = array();
|
||||||
|
|
||||||
foreach ($gis as $id => $gi)
|
foreach ($gis as $id => $gi) {
|
||||||
{
|
|
||||||
foreach ($gi as $g)
|
foreach ($gi as $g)
|
||||||
{
|
{
|
||||||
$gids[] = $g->group_id;
|
$gids[] = $g->group_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$gids = array_unique($gids);
|
$gids = array_unique($gids);
|
||||||
|
|
||||||
$group = User_group::pivotGet('id', $gids);
|
$group = User_group::pivotGet('id', $gids);
|
||||||
|
|
||||||
foreach ($notices as $notice)
|
foreach ($notices as $notice)
|
||||||
{
|
{
|
||||||
$grps = array();
|
$grps = array();
|
||||||
@ -2906,21 +2876,16 @@ class Notice extends Managed_DataObject
|
|||||||
static function fillAttachments(&$notices)
|
static function fillAttachments(&$notices)
|
||||||
{
|
{
|
||||||
$ids = self::_idsOf($notices);
|
$ids = self::_idsOf($notices);
|
||||||
|
|
||||||
$f2pMap = File_to_post::listGet('post_id', $ids);
|
$f2pMap = File_to_post::listGet('post_id', $ids);
|
||||||
|
|
||||||
$fileIds = array();
|
$fileIds = array();
|
||||||
|
|
||||||
foreach ($f2pMap as $noticeId => $f2ps) {
|
foreach ($f2pMap as $noticeId => $f2ps) {
|
||||||
foreach ($f2ps as $f2p) {
|
foreach ($f2ps as $f2p) {
|
||||||
$fileIds[] = $f2p->file_id;
|
$fileIds[] = $f2p->file_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$fileIds = array_unique($fileIds);
|
$fileIds = array_unique($fileIds);
|
||||||
|
|
||||||
$fileMap = File::pivotGet('id', $fileIds);
|
$fileMap = File::pivotGet('id', $fileIds);
|
||||||
|
|
||||||
foreach ($notices as $notice)
|
foreach ($notices as $notice)
|
||||||
{
|
{
|
||||||
$files = array();
|
$files = array();
|
||||||
|
Loading…
Reference in New Issue
Block a user