Grant users permission to view empty discussions if they can edit posts

This fixes an issue where unapproved discussions (via
flarum-ext-approval) that were rejected became invisible to the user.

This solution is imperfect and some more substantial thought into how
flarum-ext-approval works is required in the future.
This commit is contained in:
Toby Zerner 2018-01-30 11:14:25 +10:30
parent b5eab781f1
commit 4af6acdbda

View File

@ -103,16 +103,18 @@ class DiscussionPolicy extends AbstractPolicy
}
// Hide discussions with no comments, unless they are authored by the
// current user.
$query->where(function ($query) use ($actor) {
$query->where('comments_count', '>', 0)
->orWhere('start_user_id', $actor->id)
->orWhere(function ($query) use ($actor) {
$this->events->fire(
new ScopeModelVisibility($query, $actor, 'viewEmpty')
);
});
});
// current user, or the user is allowed to edit the discussion's posts.
if (! $actor->hasPermission('discussion.editPosts')) {
$query->where(function ($query) use ($actor) {
$query->where('comments_count', '>', 0)
->orWhere('start_user_id', $actor->id)
->orWhere(function ($query) use ($actor) {
$this->events->fire(
new ScopeModelVisibility($query, $actor, 'editPosts')
);
});
});
}
}
/**