mirror of
https://github.com/flarum/framework.git
synced 2025-02-01 12:51:47 +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;
|
namespace Flarum\Core\Access;
|
||||||
|
|
||||||
use Flarum\Core\User;
|
use Flarum\Core\User;
|
||||||
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
|
||||||
class UserPolicy extends AbstractPolicy
|
class UserPolicy extends AbstractPolicy
|
||||||
{
|
{
|
||||||
|
@ -30,4 +31,15 @@ class UserPolicy extends AbstractPolicy
|
||||||
return true;
|
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));
|
event(new ScopePostVisibility($discussion, $query, $actor));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$query->orWhereRaw('FALSE');
|
||||||
})
|
})
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user