Passed
Push — master ( 4eaecc...313c98 )
by Jeff
04:45 queued 01:38
created

DashboardController::configureMenuItems()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 8
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 12
rs 10
1
<?php
2
3
declare(strict_types=1);
4
/**
5
 * This file is part of the mailserver-admin package.
6
 * (c) Jeffrey Boehm <https://github.com/jeboehm/mailserver-admin>
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
11
namespace App\Controller\Admin;
12
13
use App\Entity\Alias;
14
use App\Entity\Domain;
15
use App\Entity\User;
16
use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
17
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
18
use EasyCorp\Bundle\EasyAdminBundle\Config\UserMenu;
19
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
20
use EasyCorp\Bundle\EasyAdminBundle\Router\CrudUrlGenerator;
21
use Symfony\Component\HttpFoundation\Response;
22
use Symfony\Component\Routing\Annotation\Route;
23
use Symfony\Component\Security\Core\User\UserInterface;
24
25
class DashboardController extends AbstractDashboardController
26
{
27
    /**
28
     * @Route("/", name="admin_index")
29
     */
30
    public function index(): Response
31
    {
32
        $routeBuilder = $this->get(CrudUrlGenerator::class)->build();
33
34
        return $this->redirect($routeBuilder->setController(DomainCrudController::class)->generateUrl());
35
    }
36
37
    public function configureDashboard(): Dashboard
38
    {
39
        return Dashboard::new()->setTitle('mailserver-admin');
40
    }
41
42
    public function configureUserMenu(UserInterface $user): UserMenu
43
    {
44
        return parent::configureUserMenu($user)->displayUserAvatar(false);
45
    }
46
47
    public function configureMenuItems(): iterable
48
    {
49
        yield MenuItem::linkToCrud('Domain', 'fas fa-globe', Domain::class);
50
        yield MenuItem::linkToCrud('User', 'fas fa-user', User::class);
51
        yield MenuItem::linkToCrud('Alias', 'far fa-list-alt', Alias::class);
52
53
        yield MenuItem::section('Other', 'fas fa-folder-open');
54
        yield MenuItem::linkToCrud('DKIM', 'fas fa-shield-alt', Domain::class)
55
            ->setController(DKIMCrudController::class);
56
57
        yield MenuItem::linkToUrl('Webmail', 'fas fa-folder-open', '/webmail')->setLinkRel('noreferrer');
58
        yield MenuItem::linkToUrl('Rspamd', 'fas fa-folder-open', '/rspamd')->setLinkRel('noreferrer');
59
    }
60
}
61