Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
Index
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
2 / 2
4
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 __invoke
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
3
1<?php
2
3declare(strict_types=1);
4
5namespace App\Controller\Users;
6
7use App\Controller\BaseController;
8use App\Repository\UserRepository;
9use Symfony\Component\HttpFoundation\Request;
10use Symfony\Component\HttpFoundation\Response;
11use Symfony\Component\Routing\Attribute\Route;
12use Symfony\Component\Security\Http\Attribute\IsGranted;
13
14#[IsGranted('ROLE_ADMIN')]
15#[Route(path: '/users', name: 'users_index', methods: ['GET', 'POST'])]
16class Index extends BaseController
17{
18    public function __construct(private readonly UserRepository $userRepo) {}
19
20    public function __invoke(
21        Request $request
22    ): Response
23    {
24        $userActive = $request->query->get('user_active', '1');
25        $criteria = [];
26        if ('0' === $userActive || '1' === $userActive) {
27            $criteria['isActive'] = $userActive;
28        } else {
29            $userActive = null;
30        }
31
32        return $this->render(
33            'users/index.html.twig',
34            [
35                'users' => $this->userRepo->findBy($criteria),
36                'userActive' => $userActive,
37            ]
38        );
39    }
40}