1
0
mirror of https://github.com/flarum/core.git synced 2025-08-07 00:47:00 +02:00

Use new Policy and User Permission Groups permissions

This commit is contained in:
Alexander Skvortsov
2020-12-08 14:02:06 -05:00
parent ab8a3e48b2
commit 7a48da291e
4 changed files with 48 additions and 55 deletions

View File

@@ -11,13 +11,14 @@ use Flarum\Api\Serializer\BasicUserSerializer;
use Flarum\Api\Serializer\UserSerializer;
use Flarum\Event\ConfigureUserGambits;
use Flarum\Extend;
use Flarum\Suspend\Access;
use Flarum\Suspend\Access\UserPolicy;
use Flarum\Suspend\AddUserSuspendAttributes;
use Flarum\Suspend\Event\Suspended;
use Flarum\Suspend\Event\Unsuspended;
use Flarum\Suspend\Listener;
use Flarum\Suspend\Notification\UserSuspendedBlueprint;
use Flarum\Suspend\Notification\UserUnsuspendedBlueprint;
use Flarum\Suspend\RevokeAccessFromSuspendedUsers;
use Flarum\Suspend\Search\Gambit\SuspendedGambit;
use Flarum\User\Event\Saving;
use Flarum\User\User;
@@ -44,16 +45,19 @@ return [
->type(UserSuspendedBlueprint::class, BasicUserSerializer::class, ['alert', 'email'])
->type(UserUnsuspendedBlueprint::class, BasicUserSerializer::class, ['alert', 'email']),
(new Extend\Event())
->listen(Saving::class, Listener\SaveSuspensionToDatabase::class)
->listen(Suspended::class, Listener\SendNotificationWhenUserIsSuspended::class)
->listen(Unsuspended::class, Listener\SendNotificationWhenUserIsUnsuspended::class),
(new Extend\Policy())
->modelPolicy(User::class, UserPolicy::class),
(new Extend\User())
->permissionGroups(RevokeAccessFromSuspendedUsers::class),
function (Dispatcher $events) {
$events->subscribe(Listener\RevokeAccessFromSuspendedUsers::class);
$events->listen(Saving::class, Listener\SaveSuspensionToDatabase::class);
$events->listen(Suspended::class, Listener\SendNotificationWhenUserIsSuspended::class);
$events->listen(Unsuspended::class, Listener\SendNotificationWhenUserIsUnsuspended::class);
$events->subscribe(Access\UserPolicy::class);
$events->listen(ConfigureUserGambits::class, function (ConfigureUserGambits $event) {
$event->gambits->add(SuspendedGambit::class);
});