X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/78bf044a7acf39dfc91588099435cd27038b61b2..refs/pull/3391/head:/app/Http/Controllers/AuditLogController.php diff --git a/app/Http/Controllers/AuditLogController.php b/app/Http/Controllers/AuditLogController.php index a3ef01baa..ec3f36975 100644 --- a/app/Http/Controllers/AuditLogController.php +++ b/app/Http/Controllers/AuditLogController.php @@ -8,26 +8,35 @@ use Illuminate\Support\Facades\DB; class AuditLogController extends Controller { - public function index(Request $request) { $this->checkPermission('settings-manage'); $this->checkPermission('users-manage'); $listDetails = [ - 'order' => $request->get('order', 'desc'), - 'event' => $request->get('event', ''), - 'sort' => $request->get('sort', 'created_at'), + 'order' => $request->get('order', 'desc'), + 'event' => $request->get('event', ''), + 'sort' => $request->get('sort', 'created_at'), 'date_from' => $request->get('date_from', ''), - 'date_to' => $request->get('date_to', ''), + 'date_to' => $request->get('date_to', ''), + 'user' => $request->get('user', ''), + 'ip' => $request->get('ip', ''), ]; $query = Activity::query() - ->with(['entity', 'user']) + ->with([ + 'entity' => function ($query) { + $query->withTrashed(); + }, + 'user', + ]) ->orderBy($listDetails['sort'], $listDetails['order']); if ($listDetails['event']) { - $query->where('key', '=', $listDetails['event']); + $query->where('type', '=', $listDetails['event']); + } + if ($listDetails['user']) { + $query->where('user_id', '=', $listDetails['user']); } if ($listDetails['date_from']) { @@ -36,16 +45,20 @@ class AuditLogController extends Controller if ($listDetails['date_to']) { $query->where('created_at', '<=', $listDetails['date_to']); } + if ($listDetails['ip']) { + $query->where('ip', 'like', $listDetails['ip'] . '%'); + } $activities = $query->paginate(100); $activities->appends($listDetails); - $keys = DB::table('activities')->select('key')->distinct()->pluck('key'); + $types = DB::table('activities')->select('type')->distinct()->pluck('type'); $this->setPageTitle(trans('settings.audit')); + return view('settings.audit', [ - 'activities' => $activities, - 'listDetails' => $listDetails, - 'activityKeys' => $keys, + 'activities' => $activities, + 'listDetails' => $listDetails, + 'activityTypes' => $types, ]); } }