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', ''),
23 'user' => $request->get('user', ''),
26 $query = Activity::query()
28 'entity' => function ($query) {
29 $query->withTrashed();
33 ->orderBy($listDetails['sort'], $listDetails['order']);
35 if ($listDetails['event']) {
36 $query->where('type', '=', $listDetails['event']);
38 if ($listDetails['user']) {
39 $query->where('user_id', '=', $listDetails['user']);
42 if ($listDetails['date_from']) {
43 $query->where('created_at', '>=', $listDetails['date_from']);
45 if ($listDetails['date_to']) {
46 $query->where('created_at', '<=', $listDetails['date_to']);
49 $activities = $query->paginate(100);
50 $activities->appends($listDetails);
52 $types = DB::table('activities')->select('type')->distinct()->pluck('type');
53 $this->setPageTitle(trans('settings.audit'));
54 return view('settings.audit', [
55 'activities' => $activities,
56 'listDetails' => $listDetails,
57 'activityTypes' => $types,