diff --git a/extensions/lock/extend.php b/extensions/lock/extend.php index 0e7b55cd5..beff8eae8 100644 --- a/extensions/lock/extend.php +++ b/extensions/lock/extend.php @@ -47,14 +47,16 @@ return [ ->type(DiscussionLockedPost::class), (new Extend\Event()) - ->listen(ConfigureDiscussionGambits::class, function (ConfigureDiscussionGambits $event) { - $event->gambits->add(LockedGambit::class); - }) ->listen(Saving::class, Listener\SaveLockedToDatabase::class) ->listen(DiscussionWasLocked::class, Listener\CreatePostWhenDiscussionIsLocked::class) ->listen(DiscussionWasUnlocked::class, Listener\CreatePostWhenDiscussionIsUnlocked::class), + (new Extend\Policy()) + ->modelPolicy(Discussion::class, Access\DiscussionPolicy::class), + function (Dispatcher $events) { - $events->subscribe(Access\DiscussionPolicy::class); + $events->listen(ConfigureDiscussionGambits::class, function (ConfigureDiscussionGambits $event) { + $event->gambits->add(LockedGambit::class); + }); }, ]; diff --git a/extensions/lock/src/Access/DiscussionPolicy.php b/extensions/lock/src/Access/DiscussionPolicy.php index a8cb4ca75..643136a15 100755 --- a/extensions/lock/src/Access/DiscussionPolicy.php +++ b/extensions/lock/src/Access/DiscussionPolicy.php @@ -10,16 +10,11 @@ namespace Flarum\Lock\Access; use Flarum\Discussion\Discussion; -use Flarum\User\AbstractPolicy; +use Flarum\User\Access\AbstractPolicy; use Flarum\User\User; class DiscussionPolicy extends AbstractPolicy { - /** - * {@inheritdoc} - */ - protected $model = Discussion::class; - /** * @param User $actor * @param Discussion $discussion @@ -28,7 +23,7 @@ class DiscussionPolicy extends AbstractPolicy public function reply(User $actor, Discussion $discussion) { if ($discussion->is_locked && $actor->cannot('lock', $discussion)) { - return false; + return $this->deny(); } } }