diff --git a/app/Commands/User/RemoveUserCommand.php b/app/Commands/User/RemoveUserCommand.php new file mode 100644 index 00000000..c5998249 --- /dev/null +++ b/app/Commands/User/RemoveUserCommand.php @@ -0,0 +1,36 @@ +user = $user; + } +} diff --git a/app/Events/User/UserWasRemovedEvent.php b/app/Events/User/UserWasRemovedEvent.php new file mode 100644 index 00000000..f7af80fc --- /dev/null +++ b/app/Events/User/UserWasRemovedEvent.php @@ -0,0 +1,32 @@ +user = $user; + } +} diff --git a/app/Handlers/Commands/User/RemoveUserCommandHandler.php b/app/Handlers/Commands/User/RemoveUserCommandHandler.php new file mode 100644 index 00000000..7291c313 --- /dev/null +++ b/app/Handlers/Commands/User/RemoveUserCommandHandler.php @@ -0,0 +1,35 @@ +user; + + event(new UserWasRemovedEvent($user)); + + $user->delete(); + } +} diff --git a/app/Http/Controllers/Dashboard/TeamController.php b/app/Http/Controllers/Dashboard/TeamController.php index 15783969..ba518fa8 100644 --- a/app/Http/Controllers/Dashboard/TeamController.php +++ b/app/Http/Controllers/Dashboard/TeamController.php @@ -12,14 +12,18 @@ namespace CachetHQ\Cachet\Http\Controllers\Dashboard; use AltThree\Validator\ValidationException; +use CachetHQ\Cachet\Commands\User\RemoveUserCommand; use CachetHQ\Cachet\Models\User; use GrahamCampbell\Binput\Facades\Binput; +use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\View; class TeamController extends Controller { + use DispatchesJobs; + /** * Shows the team members view. * @@ -116,7 +120,7 @@ class TeamController extends Controller */ public function deleteUser(User $user) { - $user->delete(); + $this->dispatch(new RemoveUserCommand($user)); return Redirect::route('dashboard.team.index') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.team.delete.success')));