Completed
Push — master ( 120557...b81336 )
by Craig
04:55
created

ExtensionMenu::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 2
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the Zikula package.
7
 *
8
 * Copyright Zikula - https://ziku.la/
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace Zikula\PermissionsModule\Menu;
15
16
use Knp\Menu\ItemInterface;
17
use Zikula\MenuModule\ExtensionMenu\AbstractExtensionMenu;
18
19
class ExtensionMenu extends AbstractExtensionMenu
20
{
21
    protected function getAdmin(): ?ItemInterface
22
    {
23
        $menu = $this->factory->createItem('adminAdminMenu');
24
        if ($this->permissionApi->hasPermission($this->getBundleName() . '::', '::', ACCESS_READ)) {
25
            $menu->addChild('Permission rules list', [
26
                'route' => 'zikulapermissionsmodule_permission_list',
27
            ])
28
                ->setLinkAttribute('id', 'permissions_view')
29
                ->setAttribute('icon', 'fas fa-list')
30
            ;
31
        }
32
        if ($this->permissionApi->hasPermission($this->getBundleName() . '::', '::', ACCESS_ADD)) {
33
            $menu->addChild('Create new permission rule', [
34
                'uri' => '#',
35
            ])
36
                ->setLinkAttribute('class', 'create-new-permission')
37
                ->setAttribute('icon', 'fas fa-plus')
38
            ;
39
        }
40
        $menu->addChild('Permission rules information', [
41
            'uri' => '#',
42
        ])
43
            ->setLinkAttribute('class', 'view-instance-info')
44
            ->setAttribute('icon', 'fas fa-info')
45
        ;
46
        if ($this->permissionApi->hasPermission($this->getBundleName() . '::', '::', ACCESS_ADMIN)) {
47
            $menu->addChild('Settings', [
48
                'route' => 'zikulapermissionsmodule_config_config',
49
            ])
50
                ->setLinkAttribute('id', 'permissions_modifyconfig')
51
                ->setAttribute('icon', 'fas fa-wrench')
52
            ;
53
        }
54
55
        return 0 === $menu->count() ? null : $menu;
56
    }
57
58
    public function getBundleName(): string
59
    {
60
        return 'ZikulaPermissionsModule';
61
    }
62
}
63