forked from GNUsocial/gnu-social
Hide posts from users with private_stream in scoping streams
For example the public timeline would show notices from a user with private_stream configured. (previously it would only hide _new_ notices by this user as they would be the only ones with notice scoping set).
This commit is contained in:
parent
060dbe1b56
commit
ce91f1c0e6
@ -2676,7 +2676,7 @@ class Notice extends Managed_DataObject
|
||||
$scope = self::defaultScope();
|
||||
}
|
||||
|
||||
if ($scope == 0) { // Not scoping, so it is public.
|
||||
if ($scope == 0 && !$this->getProfile()->isPrivateStream()) { // Not scoping, so it is public.
|
||||
return !$this->isHiddenSpam($profile);
|
||||
}
|
||||
|
||||
@ -2727,18 +2727,9 @@ class Notice extends Managed_DataObject
|
||||
}
|
||||
}
|
||||
|
||||
// Only for followers of the author
|
||||
$author = null;
|
||||
if ($scope & Notice::FOLLOWER_SCOPE || $this->getProfile()->isPrivateStream()) {
|
||||
|
||||
if ($scope & Notice::FOLLOWER_SCOPE) {
|
||||
|
||||
try {
|
||||
$author = $this->getProfile();
|
||||
} catch (Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Subscription::exists($profile, $author)) {
|
||||
if (!Subscription::exists($profile, $this->getProfile())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -1572,6 +1572,15 @@ class Profile extends Managed_DataObject
|
||||
return $this->getUser()->shortenLinks($text, $always);
|
||||
}
|
||||
|
||||
public function isPrivateStream()
|
||||
{
|
||||
// We only know of public remote users as of yet...
|
||||
if (!$this->isLocal()) {
|
||||
return false;
|
||||
}
|
||||
return $this->getUser()->private_stream ? true : false;
|
||||
}
|
||||
|
||||
public function delPref($namespace, $topic) {
|
||||
return Profile_prefs::setData($this, $namespace, $topic, null);
|
||||
}
|
||||
|
@ -992,6 +992,11 @@ class User extends Managed_DataObject
|
||||
return $act;
|
||||
}
|
||||
|
||||
public function isPrivateStream()
|
||||
{
|
||||
return $this->getProfile()->isPrivateStream();
|
||||
}
|
||||
|
||||
public function delPref($namespace, $topic)
|
||||
{
|
||||
return $this->getProfile()->delPref($namespace, $topic);
|
||||
|
Loading…
Reference in New Issue
Block a user