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:
@@ -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);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user