SidebarMenu   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 6
Bugs 1 Features 0
Metric Value
wmc 7
eloc 35
c 6
b 1
f 0
dl 0
loc 46
ccs 0
cts 41
cp 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B items() 0 44 7
1
<?php
2
/**
3
 * Server module for HiPanel
4
 *
5
 * @link      https://github.com/hiqdev/hipanel-module-server
6
 * @package   hipanel-module-server
7
 * @license   BSD-3-Clause
8
 * @copyright Copyright (c) 2015-2019, HiQDev (http://hiqdev.com/)
9
 */
10
11
namespace hipanel\modules\server\menus;
12
13
use hipanel\modules\server\Module;
14
use hiqdev\yii2\menus\Menu;
15
use Yii;
16
17
class SidebarMenu extends Menu
18
{
19
    public function items()
20
    {
21
        $app = Yii::$app;
22
        /** @var Module $module */
23
        $module = $app->getModule('server');
24
        $outsideUrlExists = (bool)Yii::$app->params['module.server.order.redirect.url'];
25
        /** @var User $user */
26
        $user = $app->user;
27
28
        return [
29
            'servers' => [
30
                'label'     => Yii::t('hipanel:server', 'Servers'),
31
                'url'       => ['/server/server/index'],
32
                'icon'      => 'fa-server',
33
                'visible'   => $user->can('server.read'),
34
                'items' => [
35
                    'servers' => [
36
                        'label' => Yii::t('hipanel:server', 'Servers'),
37
                        'url'   => ['/server/server/index'],
38
                    ],
39
                    'switch' => [
40
                        'label'   => Yii::t('hipanel:server', 'Switches'),
41
                        'url'     => ['/server/hub/index'],
42
                        'visible' => $user->can('hub.read'),
43
                    ],
44
                    'buy-server' => [
45
                        'label'   => Yii::t('hipanel:server:order', 'Order server'),
46
                        'url'     => ['/server/order/index'],
47
                        'visible' => $user->can('server.pay') && $module->orderIsAllowed && $outsideUrlExists,
48
                    ],
49
                    'pre-order' => [
50
                        'label'   => Yii::t('hipanel:server', 'Pre-orders'),
51
                        'url'     => ['/server/pre-order/index'],
52
                        'visible' => $user->can('resell') && $module->orderIsAllowed && $outsideUrlExists,
53
                    ],
54
                    'refuse' => [
55
                        'label'   => Yii::t('hipanel:server', 'Refuses'),
56
                        'url'     => ['/server/refuse/index'],
57
                        'visible' => $user->can('resell') && $module->orderIsAllowed && $outsideUrlExists,
58
                    ],
59
                    'config' => [
60
                        'label'   => Yii::t('hipanel:server:config', 'Config'),
61
                        'url'     => ['/server/config/index'],
62
                        'visible' => $user->can('config.read'),
63
                    ],
64
                ],
65
            ],
66
        ];
67
    }
68
}
69