mirror of
https://github.com/flarum/framework.git
synced 2024-11-30 05:13:37 +08:00
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:
parent
b5eab781f1
commit
4af6acdbda
|
@ -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')
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue
Block a user