FEATURE #1532: add ip and user agent into logged information
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
namespace App\Listeners;
|
||||
|
||||
use App\Enumerations\ActionLogTypesForLogger;
|
||||
use App\Events\Event;
|
||||
use App\Models\ActionLog;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Request;
|
||||
|
||||
abstract class Logger
|
||||
{
|
||||
@@ -43,6 +43,8 @@ abstract class Logger
|
||||
$data = [
|
||||
'user_id' => $userId,
|
||||
'type_id' => $typeId,
|
||||
'ip' => request()->ip(),
|
||||
'user_agent' => request()->header('User-agent'),
|
||||
'parameters' => json_encode((array)$parameters)
|
||||
];
|
||||
|
||||
|
||||
@@ -15,6 +15,8 @@ class ActionLog extends Model
|
||||
protected $fillable = [
|
||||
'type_id',
|
||||
'user_id',
|
||||
'ip',
|
||||
'user_agent',
|
||||
'parameters'
|
||||
];
|
||||
protected $guarded = [];
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class AddIpAndUserAgentIntoLog extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('action_log', function (Blueprint $table) {
|
||||
$table->string('ip')
|
||||
->after('user_id')
|
||||
->comment('User\'s IP Address');
|
||||
$table->mediumText('user_agent')
|
||||
->after('ip')
|
||||
->comment('Browser string of client, who performed some action.');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('action_log', function (Blueprint $table) {
|
||||
$table->dropColumn('ip');
|
||||
$table->dropColumn('user_agent');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -27,15 +27,27 @@ class SeedActionLogTypes extends Seeder
|
||||
'removeWidgetFromArea',
|
||||
'editWidget',
|
||||
'editWidgetArea',
|
||||
'invalidEditContentAttempt',
|
||||
'createNewContent',
|
||||
'deleteContent',
|
||||
'publishContent',
|
||||
'draftFromContent',
|
||||
'editContent',
|
||||
'setHomepage',
|
||||
];
|
||||
|
||||
foreach ($types as $type) {
|
||||
\DB::table('action_log_types')
|
||||
->insert([
|
||||
'string_id' => $type,
|
||||
'name' => 'admin/actionLog.name' . ucfirst($type),
|
||||
'value' => 'admin/actionLog.' . $type
|
||||
]);
|
||||
try {
|
||||
\DB::table('action_log_types')
|
||||
->insert([
|
||||
'string_id' => $type,
|
||||
'name' => 'admin/actionLog.name' . ucfirst($type),
|
||||
'value' => 'admin/actionLog.' . $type
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
// ignore exception
|
||||
echo $type . ' already seeded' . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,33 +1,50 @@
|
||||
<?php
|
||||
return [
|
||||
'overview' => 'List of all actions',
|
||||
'login' => 'Logged in',
|
||||
'logout' => 'Logged out',
|
||||
'userEdit' => 'Updated user :name (:email)',
|
||||
'newCustomField' => 'Added new custom field with ID #:id and name ":name"',
|
||||
'editCustomField' => 'Edited custom field with ID #:id and name ":name"',
|
||||
'deleteCustomField' => 'Deleted custom field ID #:id and name ":name"',
|
||||
'changeSettings' => 'Changes settings',
|
||||
'assignWidget' => 'Assigned widget :widgetName (#:widgetId) into widget area :widgetAreaName (#:widgetAreaId)',
|
||||
'deleteWidgetArea' => 'Deleted widget area :name',
|
||||
'newWidgetArea' => 'Created new widget area :name (#:id) with description ":description"',
|
||||
'newWidget' => 'Created new widget of type :type with :name (#:id) and description ":description".',
|
||||
'removeWidgetFromArea' => 'Removed widget :widgetName (#:widgetId) from widget area :widgetAreaName (#:widgetAreaId)',
|
||||
'editWidget' => 'Edited widget :name (#:id)',
|
||||
'editWidgetArea' => 'Edited widget area :name (#:id) with description ":description"',
|
||||
'ip' => 'IP address',
|
||||
'userAgent' => 'Browser identification',
|
||||
'overview' => 'List of all actions',
|
||||
'login' => 'Logged in',
|
||||
'logout' => 'Logged out',
|
||||
'userEdit' => 'Updated user :name (:email)',
|
||||
'newCustomField' => 'Added new custom field with ID #:id and name ":name"',
|
||||
'editCustomField' => 'Edited custom field with ID #:id and name ":name"',
|
||||
'deleteCustomField' => 'Deleted custom field ID #:id and name ":name"',
|
||||
'changeSettings' => 'Changes settings',
|
||||
'assignWidget' => 'Assigned widget :widgetName (#:widgetId) into widget area :widgetAreaName (#:widgetAreaId)',
|
||||
'deleteWidgetArea' => 'Deleted widget area :name',
|
||||
'newWidgetArea' => 'Created new widget area :name (#:id) with description ":description"',
|
||||
'newWidget' => 'Created new widget of type :type with :name (#:id) and description ":description".',
|
||||
'removeWidgetFromArea' => 'Removed widget :widgetName (#:widgetId) from widget area :widgetAreaName (#:widgetAreaId)',
|
||||
'editWidget' => 'Edited widget :name (#:id)',
|
||||
'editWidgetArea' => 'Edited widget area :name (#:id) with description ":description"',
|
||||
'invalidEditContentAttempt' => 'Tried to edit content with ID :contentId',
|
||||
'createNewContent' => 'Created new content page. Title <strong>:title</strong>, url :url, ID: #:id',
|
||||
'deleteContent' => 'Deleted page ":title", url :url, ID #:id. This change is recorded in revision :revision.',
|
||||
'publishContent' => 'Published page ":title" (url :url, ID #:id). Change revision: :revision.',
|
||||
'draftFromContent' => 'Made draft from page ":title" (url :url, ID #:id). Change revision: :revision.',
|
||||
'editContent' => 'Edited page - new title is ":title", url :url and ID #:id. Change revision: :revision.',
|
||||
'setHomepage' => 'New homepage: page :title, url: :url and ID #:id. Change revision: :revision.',
|
||||
|
||||
// list of names
|
||||
'nameLogin' => 'Login',
|
||||
'nameLogout' => 'Log out',
|
||||
'nameUserEdit' => 'Edit user',
|
||||
'nameNewCustomField' => 'New custom field',
|
||||
'nameEditCustomField' => 'Edit custom field',
|
||||
'nameDeleteCustomField' => 'Delete custom field',
|
||||
'nameChangeSettings' => 'Change settings',
|
||||
'nameAssignWidget' => 'Assign widget',
|
||||
'nameDeleteWidgetArea' => 'Delete widget area',
|
||||
'nameNewWidgetArea' => 'Create widget area',
|
||||
'nameNewWidget' => 'New widget',
|
||||
'nameRemoveWidgetFromArea' => 'Remove widget from area',
|
||||
'nameEditWidget' => 'Edit widget',
|
||||
'nameEditWidgetArea' => 'Edit widget area',
|
||||
'nameLogin' => 'Login',
|
||||
'nameLogout' => 'Log out',
|
||||
'nameUserEdit' => 'Edit user',
|
||||
'nameNewCustomField' => 'New custom field',
|
||||
'nameEditCustomField' => 'Edit custom field',
|
||||
'nameDeleteCustomField' => 'Delete custom field',
|
||||
'nameChangeSettings' => 'Change settings',
|
||||
'nameAssignWidget' => 'Assign widget',
|
||||
'nameDeleteWidgetArea' => 'Delete widget area',
|
||||
'nameNewWidgetArea' => 'Create widget area',
|
||||
'nameNewWidget' => 'New widget',
|
||||
'nameRemoveWidgetFromArea' => 'Remove widget from area',
|
||||
'nameEditWidget' => 'Edit widget',
|
||||
'nameEditWidgetArea' => 'Edit widget area',
|
||||
'nameInvalidEditContentAttempt' => 'Tried to edit invalid page',
|
||||
'nameCreateNewContent' => 'Created new page',
|
||||
'nameDeleteContent' => 'Deleted page',
|
||||
'namePublishContent' => 'Published page',
|
||||
'nameDraftFromContent' => 'Made draft from published page',
|
||||
'nameEditContent' => 'Edited content',
|
||||
'nameSetHomepage' => 'Set homepage',
|
||||
];
|
||||
@@ -21,13 +21,25 @@
|
||||
<div class="accordion-content" data-tab-content>
|
||||
<div class="row">
|
||||
<div class="column large-1 text-center">
|
||||
<img src="{{\App\Helpers\Gravatar::img($action->email, 70)}}" alt="{{$action->email}}" />
|
||||
<img src="{{\App\Helpers\Gravatar::img($action->email, 70)}}"
|
||||
alt="{{$action->email}}" />
|
||||
<p>
|
||||
{{$action->user_name}}<br />
|
||||
{{date('G:i', strtotime($action->created_at))}}</p>
|
||||
</div>
|
||||
<div class="column large-11">
|
||||
{{$action->value}}
|
||||
<div class="row column">
|
||||
{{$action->value}}
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
<div class="row column">
|
||||
<p>
|
||||
<strong>@lang('admin/actionLog.ip')</strong>: {{$action->ip}},
|
||||
<br />
|
||||
<strong>@lang('admin/actionLog.userAgent')</strong>: {{$action->user_agent}}
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user