FEATURE #1375: add logging for user edit and creating
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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')
|
||||
|
||||
@@ -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'));
|
||||
|
||||
@@ -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';
|
||||
}
|
||||
}
|
||||
@@ -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';
|
||||
}
|
||||
}
|
||||
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user