mirror of
https://github.com/flarum/core.git
synced 2025-07-28 20:20:34 +02:00
adds events to hook into
This commit is contained in:
23
extensions/suspend/src/Event/Suspended.php
Normal file
23
extensions/suspend/src/Event/Suspended.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Flarum\Suspend\Event;
|
||||||
|
|
||||||
|
use Flarum\User\User;
|
||||||
|
|
||||||
|
class Suspended
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var User
|
||||||
|
*/
|
||||||
|
public $user;
|
||||||
|
/**
|
||||||
|
* @var User
|
||||||
|
*/
|
||||||
|
public $actor;
|
||||||
|
|
||||||
|
public function __construct(User $user, User $actor)
|
||||||
|
{
|
||||||
|
$this->user = $user;
|
||||||
|
$this->actor = $actor;
|
||||||
|
}
|
||||||
|
}
|
23
extensions/suspend/src/Event/Unsuspended.php
Normal file
23
extensions/suspend/src/Event/Unsuspended.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Flarum\Suspend\Event;
|
||||||
|
|
||||||
|
use Flarum\User\User;
|
||||||
|
|
||||||
|
class Unsuspended
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var User
|
||||||
|
*/
|
||||||
|
public $user;
|
||||||
|
/**
|
||||||
|
* @var User
|
||||||
|
*/
|
||||||
|
public $actor;
|
||||||
|
|
||||||
|
public function __construct(User $user, User $actor)
|
||||||
|
{
|
||||||
|
$this->user = $user;
|
||||||
|
$this->actor = $actor;
|
||||||
|
}
|
||||||
|
}
|
@@ -12,6 +12,8 @@
|
|||||||
namespace Flarum\Suspend\Listener;
|
namespace Flarum\Suspend\Listener;
|
||||||
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
|
use Flarum\Suspend\Event\Suspended;
|
||||||
|
use Flarum\Suspend\Event\Unsuspended;
|
||||||
use Flarum\Suspend\SuspendValidator;
|
use Flarum\Suspend\SuspendValidator;
|
||||||
use Flarum\User\AssertPermissionTrait;
|
use Flarum\User\AssertPermissionTrait;
|
||||||
use Flarum\User\Event\Saving;
|
use Flarum\User\Event\Saving;
|
||||||
@@ -27,13 +29,18 @@ class SaveSuspensionToDatabase
|
|||||||
* @var SuspendValidator
|
* @var SuspendValidator
|
||||||
*/
|
*/
|
||||||
protected $validator;
|
protected $validator;
|
||||||
|
/**
|
||||||
|
* @var Dispatcher
|
||||||
|
*/
|
||||||
|
protected $events;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param SuspendValidator $validator
|
* @param SuspendValidator $validator
|
||||||
*/
|
*/
|
||||||
public function __construct(SuspendValidator $validator)
|
public function __construct(SuspendValidator $validator, Dispatcher $events)
|
||||||
{
|
{
|
||||||
$this->validator = $validator;
|
$this->validator = $validator;
|
||||||
|
$this->events = $events;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,6 +69,14 @@ class SaveSuspensionToDatabase
|
|||||||
$user->suspend_until = $attributes['suspendUntil']
|
$user->suspend_until = $attributes['suspendUntil']
|
||||||
? new DateTime($attributes['suspendUntil'])
|
? new DateTime($attributes['suspendUntil'])
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
|
if ($user->isDirty('suspend_until')) {
|
||||||
|
$this->events->dispatch(
|
||||||
|
$user->suspend_until === null ?
|
||||||
|
new Unsuspended($user, $actor) :
|
||||||
|
new Suspended($user, $actor)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user