Completed
Push — fm-support ( 624fa6...b0af51 )
by Konstantinos
09:12 queued 04:41
created

VisitLogController::setup()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 6
rs 9.4285
cc 2
eloc 3
nc 2
nop 0
1
<?php
2
3
use Symfony\Component\HttpFoundation\Request;
4
5
class VisitLogController extends HTMLController
6
{
7
    public function setup()
8
    {
9
        if (!$this->getMe()->hasPermission(Permission::VIEW_VISITOR_LOG)) {
10
            throw new ForbiddenException("You are not allowed to view visitor logs.");
11
        }
12
    }
13
14
    public function listAction(Request $request)
15
    {
16
        /** @var VisitQueryBuilder $qb */
17
        $qb = $this->getQueryBuilder();
18
19
        $currentPage = $request->query->get('page', 1);
20
21
        if ($request->query->has('search')) {
22
            $qb->search($request->query->get('search'));
23
        }
24
25
        $visits = $qb->sortBy('timestamp')->reverse()
26
            ->limit(30)->fromPage($currentPage)
27
            ->getModels($fast = true);
28
29
        return array(
30
            "visits"      => $visits,
31
            "currentPage" => $currentPage,
32
            "totalPages"  => $qb->countPages(),
33
            "search"      => $request->query->get('search')
34
        );
35
    }
36
37
    public static function getQueryBuilder($type = "Visit") {
38
        return $type::getQueryBuilder();
39
    }
40
}
41