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()
26 ->with(['entity', 'user'])
27 ->orderBy($listDetails['sort'], $listDetails['order']);
29 if ($listDetails['event']) {
30 $query->where('key', '=', $listDetails['event']);
33 if ($listDetails['date_from']) {
34 $query->where('created_at', '>=', $listDetails['date_from']);
36 if ($listDetails['date_to']) {
37 $query->where('created_at', '<=', $listDetails['date_to']);
40 $activities = $query->paginate(100);
41 $activities->appends($listDetails);
43 $keys = DB::table('activities')->select('key')->distinct()->pluck('key');
44 $this->setPageTitle(trans('settings.audit'));
45 return view('settings.audit', [
46 'activities' => $activities,
47 'listDetails' => $listDetails,
48 'activityKeys' => $keys,