From ab8a3e48b2affadb346571c163cd29bd242442d1 Mon Sep 17 00:00:00 2001 From: Sami Mazouz Date: Tue, 8 Dec 2020 19:44:43 +0100 Subject: [PATCH] Use new extenders (#31) --- extensions/suspend/extend.php | 6 ++- .../suspend/src/AddUserSuspendAttributes.php | 30 ++++++++++++++ .../src/Listener/AddUserSuspendAttributes.php | 41 ------------------- 3 files changed, 35 insertions(+), 42 deletions(-) create mode 100755 extensions/suspend/src/AddUserSuspendAttributes.php delete mode 100755 extensions/suspend/src/Listener/AddUserSuspendAttributes.php diff --git a/extensions/suspend/extend.php b/extensions/suspend/extend.php index eba4ede5c..027417fbf 100644 --- a/extensions/suspend/extend.php +++ b/extensions/suspend/extend.php @@ -8,9 +8,11 @@ */ use Flarum\Api\Serializer\BasicUserSerializer; +use Flarum\Api\Serializer\UserSerializer; use Flarum\Event\ConfigureUserGambits; use Flarum\Extend; use Flarum\Suspend\Access; +use Flarum\Suspend\AddUserSuspendAttributes; use Flarum\Suspend\Event\Suspended; use Flarum\Suspend\Event\Unsuspended; use Flarum\Suspend\Listener; @@ -33,6 +35,9 @@ return [ (new Extend\Model(User::class)) ->dateAttribute('suspended_until'), + (new Extend\ApiSerializer(UserSerializer::class)) + ->mutate(AddUserSuspendAttributes::class), + new Extend\Locales(__DIR__.'/locale'), (new Extend\Notification()) @@ -40,7 +45,6 @@ return [ ->type(UserUnsuspendedBlueprint::class, BasicUserSerializer::class, ['alert', 'email']), function (Dispatcher $events) { - $events->subscribe(Listener\AddUserSuspendAttributes::class); $events->subscribe(Listener\RevokeAccessFromSuspendedUsers::class); $events->listen(Saving::class, Listener\SaveSuspensionToDatabase::class); diff --git a/extensions/suspend/src/AddUserSuspendAttributes.php b/extensions/suspend/src/AddUserSuspendAttributes.php new file mode 100755 index 000000000..9e694c1eb --- /dev/null +++ b/extensions/suspend/src/AddUserSuspendAttributes.php @@ -0,0 +1,30 @@ +getActor()->can('suspend', $user); + + if ($canSuspend) { + $attributes['suspendedUntil'] = $serializer->formatDate($user->suspended_until); + } + + $attributes['canSuspend'] = $canSuspend; + + return $attributes; + } +} diff --git a/extensions/suspend/src/Listener/AddUserSuspendAttributes.php b/extensions/suspend/src/Listener/AddUserSuspendAttributes.php deleted file mode 100755 index ada1fd4d2..000000000 --- a/extensions/suspend/src/Listener/AddUserSuspendAttributes.php +++ /dev/null @@ -1,41 +0,0 @@ -listen(Serializing::class, [$this, 'addAttributes']); - } - - /** - * @param Serializing $event - */ - public function addAttributes(Serializing $event) - { - if ($event->isSerializer(UserSerializer::class)) { - $canSuspend = $event->actor->can('suspend', $event->model); - - if ($canSuspend) { - $event->attributes['suspendedUntil'] = $event->formatDate($event->model->suspended_until); - } - - $event->attributes['canSuspend'] = $canSuspend; - } - } -}