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
11 public function index(Request $request)
13 $this->checkPermission('settings-manage');
14 $this->checkPermission('users-manage');
17 'order' => $request->get('order', 'desc'),
18 'event' => $request->get('event', ''),
19 'sort' => $request->get('sort', 'created_at'),
20 'date_from' => $request->get('date_from', ''),
21 'date_to' => $request->get('date_to', ''),
22 'user' => $request->get('user', ''),
25 $query = Activity::query()
27 'entity' => function ($query) {
28 $query->withTrashed();
32 ->orderBy($listDetails['sort'], $listDetails['order']);
34 if ($listDetails['event']) {
35 $query->where('type', '=', $listDetails['event']);
37 if ($listDetails['user']) {
38 $query->where('user_id', '=', $listDetails['user']);
41 if ($listDetails['date_from']) {
42 $query->where('created_at', '>=', $listDetails['date_from']);
44 if ($listDetails['date_to']) {
45 $query->where('created_at', '<=', $listDetails['date_to']);
48 $activities = $query->paginate(100);
49 $activities->appends($listDetails);
51 $types = DB::table('activities')->select('type')->distinct()->pluck('type');
52 $this->setPageTitle(trans('settings.audit'));
54 return view('settings.audit', [
55 'activities' => $activities,
56 'listDetails' => $listDetails,
57 'activityTypes' => $types,