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

ExtensionMenu::get()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 1
dl 0
loc 7
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\SecurityCenterModule\Menu;
15
16
use Knp\Menu\FactoryInterface;
17
use Knp\Menu\ItemInterface;
18
use Zikula\ExtensionsModule\Api\ApiInterface\VariableApiInterface;
19
use Zikula\MenuModule\ExtensionMenu\AbstractExtensionMenu;
20
use Zikula\PermissionsModule\Api\ApiInterface\PermissionApiInterface;
21
22
class ExtensionMenu extends AbstractExtensionMenu
23
{
24
    /**
25
     * @var VariableApiInterface
26
     */
27
    private $variableApi;
28
29
    public function __construct(
30
        FactoryInterface $factory,
31
        PermissionApiInterface $permissionApi,
32
        VariableApiInterface $variableApi
33
    ) {
34
        parent::__construct($factory, $permissionApi);
35
        $this->variableApi = $variableApi;
36
    }
37
38
    protected function getAdmin(): ?ItemInterface
39
    {
40
        $menu = $this->factory->createItem('securityAdminMenu');
41
        if (!$this->permissionApi->hasPermission($this->getBundleName() . '::', '::', ACCESS_ADMIN)) {
42
            return null;
43
        }
44
        $menu->addChild('Settings', [
45
            'route' => 'zikulasecuritycentermodule_config_config',
46
        ])->setAttribute('icon', 'fas fa-wrench');
47
        $menu->addChild('Allowed HTML settings', [
48
            'route' => 'zikulasecuritycentermodule_config_allowedhtml',
49
        ])->setAttribute('icon', 'fas fa-list');
50
        $menu->addChild('View IDS log', [
51
            'route' => 'zikulasecuritycentermodule_idslog_view',
52
        ])->setAttribute('icon', 'fas fa-clipboard-list')
53
        ->setAttribute('class', 'align-justify')
54
            ->setAttribute('dropdown', true);
55
        $menu['View IDS log']->addChild('View IDS log', [
56
            'route' => 'zikulasecuritycentermodule_idslog_view'
57
        ]);
58
        $menu['View IDS log']->addChild('Export IDS log', [
59
            'route' => 'zikulasecuritycentermodule_idslog_view'
60
        ]);
61
        $menu['View IDS log']->addChild('Purge IDS log', [
62
            'route' => 'zikulasecuritycentermodule_idslog_purge'
63
        ]);
64
65
        $outputfilter = $this->variableApi->getSystemVar('outputfilter');
66
        if (1 === $outputfilter) {
67
            $menu->addChild('HTMLPurifier settings', [
68
                'route' => 'zikulasecuritycentermodule_config_purifierconfig',
69
            ])->setAttribute('icon', 'fas fa-wrench');
70
        }
71
72
        return 0 === $menu->count() ? null : $menu;
73
    }
74
75
    public function getBundleName(): string
76
    {
77
        return 'ZikulaSecurityCenterModule';
78
    }
79
}
80