From 7054ce53b6dc01c15d36995895d63e2069221de5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Fri, 29 Jan 2016 00:22:46 +0100 Subject: [PATCH] FEATURE #1375: add logging for user edit and creating --- app/Events/CreateNewUser.php | 27 ++++++++++++++ app/Events/EditUser.php | 25 +++++++++++++ app/Http/Controllers/Admin/CreateNewUser.php | 6 +++- app/Http/Controllers/Admin/EditUser.php | 5 +++ app/Listeners/LogCreatedUser.php | 36 +++++++++++++++++++ app/Listeners/LogEditUser.php | 37 ++++++++++++++++++++ app/Providers/EventServiceProvider.php | 6 ++++ 7 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 app/Events/CreateNewUser.php create mode 100644 app/Events/EditUser.php create mode 100644 app/Listeners/LogCreatedUser.php create mode 100644 app/Listeners/LogEditUser.php diff --git a/app/Events/CreateNewUser.php b/app/Events/CreateNewUser.php new file mode 100644 index 00000000..03743247 --- /dev/null +++ b/app/Events/CreateNewUser.php @@ -0,0 +1,27 @@ +user = $user; + } +} diff --git a/app/Events/EditUser.php b/app/Events/EditUser.php new file mode 100644 index 00000000..4d16cc29 --- /dev/null +++ b/app/Events/EditUser.php @@ -0,0 +1,25 @@ +user = $user; + } +} diff --git a/app/Http/Controllers/Admin/CreateNewUser.php b/app/Http/Controllers/Admin/CreateNewUser.php index 0dce40d5..ce45a036 100644 --- a/app/Http/Controllers/Admin/CreateNewUser.php +++ b/app/Http/Controllers/Admin/CreateNewUser.php @@ -3,11 +3,12 @@ namespace App\Http\Controllers\Admin; use App\Enumerations\UserRoles; +use App\Events\CreateNewUser as CreateNewUserEvent; use App\Http\Controllers\Controller; use App\Http\Requests; use App\Http\Requests\CreateNewUserRequest; use App\Models\User; -use Illuminate\Http\Request; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Hash; class CreateNewUser extends Controller @@ -51,6 +52,9 @@ class CreateNewUser extends Controller // store user into database $user->save(); + // fire event + Event::fire(new CreateNewUserEvent($user)); + // refresh page with information about successfull registration return redirect() ->route('users.new') diff --git a/app/Http/Controllers/Admin/EditUser.php b/app/Http/Controllers/Admin/EditUser.php index f9b0a7c5..986777ba 100644 --- a/app/Http/Controllers/Admin/EditUser.php +++ b/app/Http/Controllers/Admin/EditUser.php @@ -4,11 +4,13 @@ namespace App\Http\Controllers\Admin; use App\Enumerations\UserRoles; use App\Enumerations\UserStates; +use App\Events\EditUser as EditUserEvent; use App\Http\Controllers\Controller; use App\Http\Requests; use App\Http\Requests\EditUserRequest; use App\Models\User; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Hash; class EditUser extends Controller @@ -74,6 +76,9 @@ class EditUser extends Controller $user->save(); + // fire event about editing user + Event::fire(new EditUserEvent($user)); + return redirect() ->route('users.detail', ['id' => $id]) ->with('success', trans('admin/userManagement.userSuccessfullyEdited')); diff --git a/app/Listeners/LogCreatedUser.php b/app/Listeners/LogCreatedUser.php new file mode 100644 index 00000000..9da573ec --- /dev/null +++ b/app/Listeners/LogCreatedUser.php @@ -0,0 +1,36 @@ + $event->user->id, + 'name' => $event->user->name, + 'email' => $event->user->email + ]; + + $this->saveLog($parameters); + } + + /** + * Getter for action name. Used only internally + * + * @return mixed + */ + protected function getName() + { + return 'createUser'; + } +} diff --git a/app/Listeners/LogEditUser.php b/app/Listeners/LogEditUser.php new file mode 100644 index 00000000..c656e4ee --- /dev/null +++ b/app/Listeners/LogEditUser.php @@ -0,0 +1,37 @@ + $event->user->id, + 'name' => $event->user->name, + 'email' => $event->user->email + ]; + + $this->saveLog($parameters); + } + + /** + * Getter for action name. Used only internally + * + * @return mixed + */ + protected function getName() + { + return 'userEdit'; + } +} diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 935202c4..4e7b739f 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -13,6 +13,12 @@ class EventServiceProvider extends ServiceProvider * @var array */ protected $listen = [ + 'App\Events\CreateNewUser' => [ + 'App\Listeners\LogCreatedUser', + ], + 'App\Events\EditUser' => [ + 'App\Listeners\LogEditUser', + ], // internal Laravel events - should work as auth.login and auth.logout, however it doesn't... 'Illuminate\Auth\Events\Login' => [ 'App\Listeners\LogLogin'