FEATURE #1375: add logging for user edit and creating

This commit is contained in:
Michal Kváček
2016-01-29 00:22:46 +01:00
parent 5fabc08a99
commit 7054ce53b6
7 changed files with 141 additions and 1 deletions
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Events;
use App\Events\Event;
use App\Models\User;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class CreateNewUser extends Event
{
use SerializesModels;
/**
* @var User
*/
public $user;
/**
* Create a new event instance.
*
* @param User $user
*/
public function __construct(User $user)
{
$this->user = $user;
}
}
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace App\Events;
use App\Models\User;
use Illuminate\Queue\SerializesModels;
class EditUser extends Event
{
use SerializesModels;
/**
* @var User
*/
public $user;
/**
* Create a new event instance.
*
* @param User $user
*/
public function __construct(User $user)
{
$this->user = $user;
}
}
+5 -1
View File
@@ -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')
+5
View File
@@ -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'));
+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Listeners;
use App\Events\CreateNewUser;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class LogCreatedUser extends Logger
{
/**
* Handle the event.
*
* @param CreateNewUser $event
*/
public function handle(CreateNewUser $event)
{
$parameters = [
'id' => $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';
}
}
+37
View File
@@ -0,0 +1,37 @@
<?php
namespace App\Listeners;
use App\Events\EditUser;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class LogEditUser extends Logger
{
/**
* Handle the event.
*
* @param EditUser $event
* @return void
*/
public function handle(EditUser $event)
{
$parameters = [
'id' => $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';
}
}
+6
View File
@@ -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'