3 namespace BookStack\Http\Controllers;
5 use BookStack\Actions\Activity;
6 use Illuminate\Http\Request;
7 use Illuminate\Support\Facades\DB;
9 class AuditLogController extends Controller
12 public function index(Request $request)
14 $this->checkPermission('settings-manage');
15 $this->checkPermission('users-manage');
18 'order' => $request->get('order', 'desc'),
19 'event' => $request->get('event', ''),
20 'sort' => $request->get('sort', 'created_at'),
21 'date_from' => $request->get('date_from', ''),
22 'date_to' => $request->get('date_to', ''),
25 $query = Activity::query()
27 'entity' => function ($query) {
28 $query->withTrashed();
32 ->orderBy($listDetails['sort'], $listDetails['order']);
34 if ($listDetails['event']) {
35 $query->where('key', '=', $listDetails['event']);
38 if ($listDetails['date_from']) {
39 $query->where('created_at', '>=', $listDetails['date_from']);
41 if ($listDetails['date_to']) {
42 $query->where('created_at', '<=', $listDetails['date_to']);
45 $activities = $query->paginate(100);
46 $activities->appends($listDetails);
48 $keys = DB::table('activities')->select('key')->distinct()->pluck('key');
49 $this->setPageTitle(trans('settings.audit'));
50 return view('settings.audit', [
51 'activities' => $activities,
52 'listDetails' => $listDetails,
53 'activityKeys' => $keys,