Completed
Pull Request — 5.6 (#2830)
by Jeroen
14:14
created

Helper/Menu/UserManagementMenuAdaptor.php (2 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace Kunstmaan\UserManagementBundle\Helper\Menu;
4
5
use Kunstmaan\AdminBundle\Helper\Menu\MenuAdaptorInterface;
6
use Kunstmaan\AdminBundle\Helper\Menu\MenuBuilder;
7
use Kunstmaan\AdminBundle\Helper\Menu\MenuItem;
8
use Symfony\Component\HttpFoundation\Request;
9
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
10
11
class UserManagementMenuAdaptor implements MenuAdaptorInterface
12
{
13
    /**
14
     * @var AuthorizationCheckerInterface
15
     */
16
    protected $authorizationChecker;
17
18
    public function __construct(AuthorizationCheckerInterface $authorizationChecker)
19
    {
20
        $this->authorizationChecker = $authorizationChecker;
21
    }
22
23
    /**
24
     * In this method you can add children for a specific parent, but also remove and change the already created children
25
     *
26
     * @param MenuBuilder $menu      The MenuBuilder
27
     * @param MenuItem[]  &$children The current children
28
     * @param MenuItem    $parent    The parent Menu item
0 ignored issues
show
Should the type for parameter $parent not be null|MenuItem?

This check looks for @param annotations where the type inferred by our type inference engine differs from the declared type.

It makes a suggestion as to what type it considers more descriptive.

Most often this is a case of a parameter that can be null in addition to its declared types.

Loading history...
29
     * @param Request     $request   The Request
0 ignored issues
show
Should the type for parameter $request not be null|Request?

This check looks for @param annotations where the type inferred by our type inference engine differs from the declared type.

It makes a suggestion as to what type it considers more descriptive.

Most often this is a case of a parameter that can be null in addition to its declared types.

Loading history...
30
     */
31
    public function adaptChildren(MenuBuilder $menu, array &$children, MenuItem $parent = null, Request $request = null)
32
    {
33
        if (\is_null($parent)) {
34
            return;
35
        }
36
37
        if ('KunstmaanAdminBundle_settings' == $parent->getRoute()) {
38 View Code Duplication
            if ($this->authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) {
39
                $menuItem = new MenuItem($menu);
40
                $menuItem
41
                    ->setRoute('KunstmaanUserManagementBundle_settings_users')
42
                    ->setUniqueId('Users')
43
                    ->setLabel('settings.users')
44
                    ->setParent($parent);
45
                if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) {
46
                    $menuItem->setActive(true);
47
                    $parent->setActive(true);
48
                }
49
                $children[] = $menuItem;
50
51
                $menuItem = new MenuItem($menu);
52
                $menuItem
53
                    ->setRoute('KunstmaanUserManagementBundle_settings_groups')
54
                    ->setUniqueId('Groups')
55
                    ->setLabel('settings.groups')
56
                    ->setParent($parent);
57
58
                if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) {
59
                    $menuItem->setActive(true);
60
                    $parent->setActive(true);
61
                }
62
                $children[] = $menuItem;
63
64
                $menuItem = new MenuItem($menu);
65
                $menuItem
66
                    ->setRoute('KunstmaanUserManagementBundle_settings_roles')
67
                    ->setUniqueId('Roles')
68
                    ->setLabel('settings.roles')
69
                    ->setParent($parent);
70
                if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) {
71
                    $menuItem->setActive(true);
72
                    $parent->setActive(true);
73
                }
74
                $children[] = $menuItem;
75
            }
76
        } elseif ('KunstmaanUserManagementBundle_settings_users' == $parent->getRoute()) {
77
            if ($this->authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) {
78
                $menuItem = new MenuItem($menu);
79
                $menuItem
80
                    ->setRoute('KunstmaanUserManagementBundle_settings_users_add')
81
                    ->setUniqueId('Add user')
82
                    ->setLabel('Add user')
83
                    ->setParent($parent)
84
                    ->setAppearInNavigation(false);
85
                if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) {
86
                    $menuItem->setActive(true);
87
                }
88
                $children[] = $menuItem;
89
90
                $menuItem = new MenuItem($menu);
91
                $menuItem
92
                    ->setRoute('KunstmaanUserManagementBundle_settings_users_edit')
93
                    ->setUniqueId('Edit user')
94
                    ->setLabel('Edit user')
95
                    ->setParent($parent)
96
                    ->setAppearInNavigation(false);
97
                if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) {
98
                    $menuItem->setActive(true);
99
                }
100
                $children[] = $menuItem;
101
            }
102
        } elseif ('KunstmaanUserManagementBundle_settings_groups' == $parent->getRoute()) {
103
            if ($this->authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) {
104
                $menuItem = new MenuItem($menu);
105
                $menuItem
106
                    ->setRoute('KunstmaanUserManagementBundle_settings_groups_add')
107
                    ->setUniqueId('Add group')
108
                    ->setLabel('Add group')
109
                    ->setParent($parent)
110
                    ->setAppearInNavigation(false);
111
                if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) {
112
                    $menuItem->setActive(true);
113
                }
114
                $children[] = $menuItem;
115
116
                $menuItem = new MenuItem($menu);
117
                $menuItem
118
                    ->setRoute('KunstmaanUserManagementBundle_settings_groups_edit')
119
                    ->setUniqueId('Edit group')
120
                    ->setLabel('Edit group')
121
                    ->setParent($parent)
122
                    ->setAppearInNavigation(false);
123
                if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) {
124
                    $menuItem->setActive(true);
125
                }
126
                $children[] = $menuItem;
127
            }
128
        } elseif (('KunstmaanUserManagementBundle_settings_roles' == $parent->getRoute()) && $this->authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) {
129
            $menuItem = new MenuItem($menu);
130
            $menuItem
131
                ->setRoute('KunstmaanUserManagementBundle_settings_roles_add')
132
                ->setUniqueId('Add role')
133
                ->setLabel('Add role')
134
                ->setParent($parent)
135
                ->setAppearInNavigation(false);
136
            if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) {
137
                $menuItem->setActive(true);
138
            }
139
            $children[] = $menuItem;
140
141
            $menuItem = new MenuItem($menu);
142
            $menuItem
143
                ->setRoute('KunstmaanUserManagementBundle_settings_roles_edit')
144
                ->setUniqueId('Edit role')
145
                ->setLabel('Edit role')
146
                ->setParent($parent)
147
                ->setAppearInNavigation(false);
148
            if (stripos($request->attributes->get('_route'), $menuItem->getRoute()) === 0) {
149
                $menuItem->setActive(true);
150
            }
151
            $children[] = $menuItem;
152
        }
153
    }
154
}
155