From a87b51f51112eeea2c132dd922ac6d0d3e6d6036 Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Wed, 24 Feb 2016 16:07:05 +1030 Subject: [PATCH] Only validate and check for suspend permission if suspendUntil attribute is present. fixes flarum/core#826 --- .../src/Listener/SaveSuspensionToDatabase.php | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/extensions/suspend/src/Listener/SaveSuspensionToDatabase.php b/extensions/suspend/src/Listener/SaveSuspensionToDatabase.php index 35e31f9f1..b23e1c386 100755 --- a/extensions/suspend/src/Listener/SaveSuspensionToDatabase.php +++ b/extensions/suspend/src/Listener/SaveSuspensionToDatabase.php @@ -10,8 +10,7 @@ namespace Flarum\Suspend\Listener; -use Illuminate\Support\Arr; -use Carbon\Carbon; +use DateTime; use Flarum\Core\Access\AssertPermissionTrait; use Flarum\Event\UserWillBeSaved; use Flarum\Suspend\SuspendValidator; @@ -51,18 +50,15 @@ class SaveSuspensionToDatabase { $attributes = array_get($event->data, 'attributes', []); - $suspendUntil = Arr::get($attributes, 'suspendUntil'); - if ($suspendUntil) { - $suspendUntil = new Carbon($suspendUntil); + if (array_key_exists('suspendUntil', $attributes)) { + $this->validator->assertValid($attributes); + + $user = $event->user; + $actor = $event->actor; + + $this->assertCan($actor, 'suspend', $user); + + $user->suspend_until = new DateTime($attributes['suspendUntil']); } - - $this->validator->assertValid($attributes); - - $user = $event->user; - $actor = $event->actor; - - $this->assertCan($actor, 'suspend', $user); - - $user->suspend_until = $suspendUntil; } }