Fix posts being incorrectly visible on user page. closes #680

- When no discussions are visible, the query that filters posts by discussion visibility was incorrectly making all posts visible.
- Also hide user profiles altogether if discussions are not visible.
This commit is contained in:
Toby Zerner 2016-03-10 17:50:29 +10:30
parent 2391471937
commit beb2f91fef
2 changed files with 14 additions and 0 deletions

View File

@ -11,6 +11,7 @@
namespace Flarum\Core\Access;
use Flarum\Core\User;
use Illuminate\Database\Eloquent\Builder;
class UserPolicy extends AbstractPolicy
{
@ -30,4 +31,15 @@ class UserPolicy extends AbstractPolicy
return true;
}
}
/**
* @param User $actor
* @param Builder $query
*/
public function find(User $actor, Builder $query)
{
if ($actor->cannot('viewDiscussions')) {
$query->whereRaw('FALSE');
}
}
}

View File

@ -96,6 +96,8 @@ class PostRepository
event(new ScopePostVisibility($discussion, $query, $actor));
});
}
$query->orWhereRaw('FALSE');
})
->get();