BookStack/app/Http/Controllers/AuditLogController.php

65 lines
2.0 KiB
PHP
Raw Normal View History

<?php
namespace BookStack\Http\Controllers;
use BookStack\Actions\Activity;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class AuditLogController extends Controller
{
public function index(Request $request)
{
$this->checkPermission('settings-manage');
$this->checkPermission('users-manage');
$listDetails = [
2021-06-26 15:23:15 +00:00
'order' => $request->get('order', 'desc'),
'event' => $request->get('event', ''),
'sort' => $request->get('sort', 'created_at'),
'date_from' => $request->get('date_from', ''),
2021-06-26 15:23:15 +00:00
'date_to' => $request->get('date_to', ''),
'user' => $request->get('user', ''),
2021-11-26 05:08:04 +00:00
'ip' => $request->get('ip', ''),
];
$query = Activity::query()
->with([
'entity' => function ($query) {
$query->withTrashed();
},
2021-06-26 15:23:15 +00:00
'user',
])
->orderBy($listDetails['sort'], $listDetails['order']);
if ($listDetails['event']) {
$query->where('type', '=', $listDetails['event']);
}
if ($listDetails['user']) {
$query->where('user_id', '=', $listDetails['user']);
}
if ($listDetails['date_from']) {
$query->where('created_at', '>=', $listDetails['date_from']);
}
if ($listDetails['date_to']) {
$query->where('created_at', '<=', $listDetails['date_to']);
}
2021-11-26 05:08:04 +00:00
if ($listDetails['ip']) {
2021-12-07 09:42:10 +00:00
$query->where('ip', 'like', $listDetails['ip'] . '%');
2021-11-26 05:08:04 +00:00
}
$activities = $query->paginate(100);
$activities->appends($listDetails);
$types = DB::table('activities')->select('type')->distinct()->pluck('type');
$this->setPageTitle(trans('settings.audit'));
2021-06-26 15:23:15 +00:00
return view('settings.audit', [
2021-06-26 15:23:15 +00:00
'activities' => $activities,
'listDetails' => $listDetails,
'activityTypes' => $types,
]);
}
}