$scope = self::defaultScope();
}
- // If there's no scope, anyone (even anon) is in scope.
+ $author = $this->getProfile();
- if ($scope == 0) {
+ // Author is always in scope
+
+ if ($author->id == $profile->id) {
return true;
}
- // If there's scope, anon cannot be in scope
+ // If the author is silenced, only show to
+ // folks who can un-silence; note ignores scope
- if (empty($profile)) {
+ if ($author->hasRole(Profile_role::SILENCED) &&
+ (empty($profile) || !$profile->hasRight(Right::SILENCEUSER))) {
return false;
}
- // Author is always in scope
+ // If there's no scope, anyone (even anon) is in scope.
- if ($this->profile_id == $profile->id) {
+ if ($scope == 0) {
return true;
}
+ // If there's scope, anon cannot be in scope
+
+ if (empty($profile)) {
+ return false;
+ }
+
// Only for users on this site
if ($scope & Notice::SITE_SCOPE) {
// Only for followers of the author
if ($scope & Notice::FOLLOWER_SCOPE) {
- $author = $this->getProfile();
if (!Subscription::exists($profile, $author)) {
return false;
}