1
0
mirror of https://github.com/flarum/core.git synced 2025-08-01 14:10:37 +02:00

Use new policy extender, move deprecated event listener back to old style callback

This commit is contained in:
Alexander Skvortsov
2020-12-08 14:34:11 -05:00
parent c0e0c7f3c7
commit b7034c707d
2 changed files with 8 additions and 11 deletions

View File

@@ -47,14 +47,16 @@ return [
->type(DiscussionLockedPost::class), ->type(DiscussionLockedPost::class),
(new Extend\Event()) (new Extend\Event())
->listen(ConfigureDiscussionGambits::class, function (ConfigureDiscussionGambits $event) {
$event->gambits->add(LockedGambit::class);
})
->listen(Saving::class, Listener\SaveLockedToDatabase::class) ->listen(Saving::class, Listener\SaveLockedToDatabase::class)
->listen(DiscussionWasLocked::class, Listener\CreatePostWhenDiscussionIsLocked::class) ->listen(DiscussionWasLocked::class, Listener\CreatePostWhenDiscussionIsLocked::class)
->listen(DiscussionWasUnlocked::class, Listener\CreatePostWhenDiscussionIsUnlocked::class), ->listen(DiscussionWasUnlocked::class, Listener\CreatePostWhenDiscussionIsUnlocked::class),
(new Extend\Policy())
->modelPolicy(Discussion::class, Access\DiscussionPolicy::class),
function (Dispatcher $events) { function (Dispatcher $events) {
$events->subscribe(Access\DiscussionPolicy::class); $events->listen(ConfigureDiscussionGambits::class, function (ConfigureDiscussionGambits $event) {
$event->gambits->add(LockedGambit::class);
});
}, },
]; ];

View File

@@ -10,16 +10,11 @@
namespace Flarum\Lock\Access; namespace Flarum\Lock\Access;
use Flarum\Discussion\Discussion; use Flarum\Discussion\Discussion;
use Flarum\User\AbstractPolicy; use Flarum\User\Access\AbstractPolicy;
use Flarum\User\User; use Flarum\User\User;
class DiscussionPolicy extends AbstractPolicy class DiscussionPolicy extends AbstractPolicy
{ {
/**
* {@inheritdoc}
*/
protected $model = Discussion::class;
/** /**
* @param User $actor * @param User $actor
* @param Discussion $discussion * @param Discussion $discussion
@@ -28,7 +23,7 @@ class DiscussionPolicy extends AbstractPolicy
public function reply(User $actor, Discussion $discussion) public function reply(User $actor, Discussion $discussion)
{ {
if ($discussion->is_locked && $actor->cannot('lock', $discussion)) { if ($discussion->is_locked && $actor->cannot('lock', $discussion)) {
return false; return $this->deny();
} }
} }
} }