]> BookStack Code Mirror - bookstack/blob - app/Http/Controllers/AuditLogController.php
Merge branch 'preview-entities' of git://github.com/mr-vinn/BookStack into mr-vinn...
[bookstack] / app / Http / Controllers / AuditLogController.php
1 <?php
2
3 namespace BookStack\Http\Controllers;
4
5 use BookStack\Actions\Activity;
6 use Illuminate\Http\Request;
7 use Illuminate\Support\Facades\DB;
8
9 class AuditLogController extends Controller
10 {
11
12     public function index(Request $request)
13     {
14         $this->checkPermission('settings-manage');
15         $this->checkPermission('users-manage');
16
17         $listDetails = [
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         ];
24
25         $query = Activity::query()
26             ->with(['entity', 'user'])
27             ->orderBy($listDetails['sort'], $listDetails['order']);
28
29         if ($listDetails['event']) {
30             $query->where('key', '=', $listDetails['event']);
31         }
32
33         if ($listDetails['date_from']) {
34             $query->where('created_at', '>=', $listDetails['date_from']);
35         }
36         if ($listDetails['date_to']) {
37             $query->where('created_at', '<=', $listDetails['date_to']);
38         }
39
40         $activities = $query->paginate(100);
41         $activities->appends($listDetails);
42
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,
49         ]);
50     }
51 }