mirror of
https://github.com/flarum/framework.git
synced 2025-02-01 10:18:29 +08:00
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:
parent
2391471937
commit
beb2f91fef
|
@ -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');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -96,6 +96,8 @@ class PostRepository
|
|||
event(new ScopePostVisibility($discussion, $query, $actor));
|
||||
});
|
||||
}
|
||||
|
||||
$query->orWhereRaw('FALSE');
|
||||
})
|
||||
->get();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user