Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
66.67% covered (warning)
66.67%
20 / 30
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
UserCrudController
66.67% covered (warning)
66.67%
20 / 30
0.00% covered (danger)
0.00%
0 / 2
5.93
0.00% covered (danger)
0.00%
0 / 1
 getEntityFqcn
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 configureFields
68.97% covered (warning)
68.97%
20 / 29
0.00% covered (danger)
0.00%
0 / 1
4.48
1<?php
2
3declare(strict_types=1);
4
5namespace App\Controller\Admin;
6
7use Override;
8use App\Entity\User;
9use App\Enum\UserRole;
10use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;
11use EasyCorp\Bundle\EasyAdminBundle\Field\ChoiceField;
12use EasyCorp\Bundle\EasyAdminBundle\Field\IdField;
13use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
14
15/**
16 * @extends AbstractCrudController<User>
17 */
18class UserCrudController extends AbstractCrudController
19{
20    public static function getEntityFqcn(): string
21    {
22        return User::class;
23    }
24
25    #[Override]
26    public function configureFields(string $pageName): iterable
27    {
28        return [
29            IdField::new('id')
30                ->onlyOnIndex(),
31            TextField::new('identifier'),
32            TextField::new('identifier')
33                ->hideOnForm()
34                ->setSortable(false)
35                ->setLabel('Social')
36                ->formatValue(static function (string $value, ?User $user): string|bool {
37                    if (!$user instanceof User) {
38                        return false;
39                    }
40
41                    if ($user->getGoogleId()) {
42                        return sprintf(
43                            '<i class="fa fa-users" title="Google ID: %s"></i>',
44                            $user->getGoogleId()
45                        );
46                    }
47
48                    if ($user->getGitHubId()) {
49                        return sprintf(
50                            '<i class="fa fa-users" title="GitHub ID: %s"></i>',
51                            $user->getGitHubId()
52                        );
53                    }
54
55                    return false;
56                }),
57            ChoiceField::new('role')
58                ->setChoices(array_combine(
59                    array_map(static fn(UserRole $r) => $r->label(), UserRole::cases()),
60                    UserRole::cases(),
61                )),
62        ];
63    }
64}